Всем привет, долго искал на различных форумах детальные инструкции по настройке #ci сервера для запуска автотестов, но так и не нашел.
Не знаю в чем проблема: или нету особого интереса, или большинство людей, отказываются предоставлять людям помощь, а тем более бесплатную в критически важных вопросах. В связи с этим предлагаю детальную инструкцию по настройке #travisci и #circleci, так как по #jenkins уже сказано много, а эти две платформы как по мне довольно интересны и популярны.
Итак, настройка на самом деле не так уж сложна как может показаться. Главное в этом деле это волшебный файл конфига, по которому каждая CI-ка определяет, что, где и как будем запускать.
Travis CI
-
Регистрируемся на оф.сайте Travis CI, а точнее входим через любой предложенный вариант, в зависимости от того где у вас тесты хранятся (#git , #bitbucket)
-
После успешной авторизации заходим в профиль и активируем любой имеющийся ваш проект с тестами (да, программа их автоматом вытянула с вашего профиля)
-
Программа будет говорить вам, что нужно создать в корневой папке проекта файл “.travis.yml” (да, именно с точкой впереди). Делаем это, но только предварительно вставляем указанные ниже строки в файл, которые помогут сконфигурировать запуск тестов). Лично я пробовал ранить тесты для селениума на java, по этому и код соответствующий. Поэдитайте его для своего проэкта.
language: java # set desired language
dist: trusty
addons:
apt:
sources:
- google-chrome # if your project contains tests need to be run on chrome include these lines
packages:
- google-chrome-stable
addons:
firefox: "38.0" # if your project contains tests need to be run on firefox include these lines
before_install:
- "/sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1280x1024" # running virtual display on desired port with desired settings
- sleep 3
before_script:
# Selenium server
- "wget http://selenium-release.storage.googleapis.com/2.45/selenium-server-standalone-2.45.0.jar" - # download selenium-server
- "wget %url_of_your_lib% # download your framework or framework dependencies (selenium libs, etc.)
- "java -jar selenium-server-standalone-2.45.0.jar > /dev/null 2>/dev/null &" # starting selenium-server
- sleep 20 # gives enough time to Selenium to start
script:
# perform build and run commands here
- %your_framework build command%
- %your_framework run command%
На самом деле, важно прочитать и усвоить теги для комманд, которые играют большую роль в жизненном цикле запуска тестов на этом CI сервере, имею в виду комманды:
- before_script
- before_install
- script и т.д (в оф.доке они есть и понять, что они значат также не составит труда)
-
Пушим файлик конфига на гит и ждем…
-
CI-ка увидит, что был коммит и автоматически начнет ранить тесты, если все было сделано правильно, то пойдут выполняться комманды, которые вы указали. Обращайте внимание на ошибки - они помогут.
На этом для Travis CI все. Кстати на почту также начнут сыпаться уведомления об успешном или зафейленом прохождении тестов, если что)
Circle CI
-
Регистрируемся на оф.сайте Circle CI, а точнее входим через любой предложенный вариант, в зависимости от того где у вас тесты хранятся (Git, Bitbucket)
-
После успешной авторизации заходим в профиль добавляем любой проект из вашей репы.
-
Программа будет говорить вам, что нужно создать в корневой папке проекта файл “circle.yml” (да, уже без точки впереди). Делаем это, но только предварительно вставляем указанные ниже строки в файл, которые помогут сконфигурировать запуск тестов).
machine:
java:
version: 1.8
general:
branches:
only:
- master # list of branches to build
dependencies:
pre:
- wget http://url_for_your_libs
- wget http://selenium-release.storage.googleapis.com/2.45/selenium-server-standalone-2.45.0.jar #download selenium-server
- /sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1280x1024
- sleep 3
- java -jar selenium-server-standalone-2.45.0.jar > /dev/null 2>/dev/null:
background: true #run selenium server in background
- sleep 30
test:
override:
- #here should be build commands and run commands for your tests
-
Пушим файлик конфига на гит и ждем…
-
CI-ка увидит, что был коммит и автоматически начнет ранить тесты, если все было сделано правильно, то пойдут выполняться комманды, которые вы указали. Обращайте внимание на ошибки - они помогут.
На этом для Circle CI все. С Circle CI все должно быть проще скажу сразу, он “умнее” и в некоторых случах некоторым людям даже не приходится иметь файл конфига. Параметры в конфиге можно менять как угодно, ну только в соответствии с докуменнтацией), обращайте внимание на глобальные переменные, они помогут сэкономнить время при ране тестов. Также не забудьте указать комманду, которая бы сохраняла репорты в отдельную папку на CI сервере.
На этом все. Если что, пишите.