Для того, чтобы запустить WebDriver нам понадобится FireFox (или IceWeasel), либо Chrome (или Chromium). Но на сервере обычно не устанавливается графический сервер X11, поэтому нам понадобится установить xvfb.
Xvfb or X virtual framebuffer is a display server implementing the X11 display server protocol. In contrast to other display servers Xvfb performs all graphical operations in memory without showing any screen output. http://en.wikipedia.org/wiki/Xvfb
Это можно сделать так:
sudo apt-get install xvfb
Во FreeBSD можно установить из порта:
cd /usr/ports/x11-servers/xorg-vfbserver
make install clean
Лично я сам пользуюсь только этим браузером, в силу того что он работает быстрее, поддерживает современные технологии и на мой вгляд у него лучше сделан Developer Tools.
Теперь можно переместить бинарник "chromedriver" в /usr/local/bin (и не забыть наделить правами на запуск для всех остальных "o+x"), либо положить в домашнюю директорию пользователя от которого будете запускать тесты (например, jenkins):
Запускаем chromedriver, проверяем что он работает:
chromedriver
Starting ChromeDriver (v2.10.267518) on port 9515
Only local connections are allowed.
Жмем Ctrl+C.
Добавление и настройка задачи для Jenkins
Нажимаем New Job (или "New Item" в более новых версиях Jenkins), выбираем Build a free-style software project, называем задачу как хочется, например "Testing_Project".
В секции "Source Code Management" выбрать чекбокс на "Git Repositories". В "Repository URL" вставляем git@git.example.org:repo-name.git, а в "Branches to build" указываем нужную ветку, например "master".
Теперь настроим "Poll SCM" > "Schedule". Будем каждые 2 минуты проверять изменения в репозитории, если появились изменения, то запускается новый билд с тестами:
H/2 * * * *
В секции Build Environment, выбираем:
"Add timestamps to the Console Output"
"Color ANSI Console Output" (в появившемся селекте я выбираю "xterm")
Переходим к самому главному, добавляем секцию для запуска тестов "Build" > "Add build step" > "Execute shell":
virtualenv --no-site-packages --distribute venv
# Устанавливаем зависимости для проекта и тестов
venv/bin/pip install --upgrade -r requirements/base.txt
venv/bin/pip install --upgrade -r requirements/tests.txt
# Запускаем тесты с использованием lettuce
venv/bin/python ./manage.py harvest -d --apps=tests --verbosity=4 --settings=test_settings
mkdir -p reports
xvfb-run -l -s '-screen 0 1280x1024x16 -ac' venv/bin/python ./manage.py harvest --apps=example.tests --verbosity=3 --settings=test_settings --with-xunit --xunit-file=./reports/junit-lettuce.xml example/tests/features/*.feature
Вот собственно и все, теперь мы можем запускать полноценные функциональные BDD тесты!
Комментарии
Эта новость попала в http://pythondigest.ru/feed/?lang=ru
Оставьте свой комментарий