Ответ 1
Да, можно запускать тесты Codeception, включая приемочные тесты, которые запускаются с использованием WebDriver, на Travis CI.
можно запускать тесты с помощью реального браузера на Travis, но проще всего использовать безгласный браузер, поскольку Travis работает на безголовой машине. PhantomJS идеально подходит для этого, и он поставляется с предустановленной загрузкой Travis CI.
Чтобы запустить тесты с помощью PhantomJS, вам необходимо настроить модуль WebDriver, как это, в конфигурационном файле .yml
Codeception:
modules:
config:
WPWebDriver:
url: 'http://127.0.0.1:8888'
browser: phantomjs
URL-адрес важен. Я обнаружил, что попытка использовать localhost
вместо 127.0.0.1
не будет работать. Кроме того, если вы случайно опустили http://
, это тоже не сработает. Вы можете использовать большинство портов 8***
, так как большинство из них открыты, но, конечно, вам нужно иметь веб-сервер, работающий на этом порту, для обслуживания ваших статических файлов или запуска вашего приложения PHP. Самый простой способ сделать это, я считаю, - использовать встроенный веб-сервер PHP.
Ваш файл .travis.yml
может выглядеть примерно так:
# Travis CI configuration file.
language: php
php:
- 5.6
- 7.0
before_script:
# Start up a web server.
- php -S 127.0.0.1:8888 -t /path/to/web/root >/dev/null 2>&1 &
# Start up the webdriver.
- phantomjs --webdriver=4444 >/dev/null 2>&1 &
# Install Codeception.
# Doing this last gives the webdriver and server time to start up.
- composer install --prefer-source
script:
- vendor/bin/codecept run
Конечно, вам нужно добавить Codeception в свой проект composer.json
:
composer require --dev codeception/codeception
Вам также нужно будет изменить path/to/web/root
выше на путь к каталогу, в котором вы хотите, чтобы корень документа сервера был.
Если вы хотите увидеть рабочую демонстрацию тестов WebDriver против WordPress, вы можете проверить это репо GitHub.