Sì, è possibile eseguire Test di codeception, inclusi test di accettazione eseguiti con WebDriver, su Travis CI.
È possible to run your tests with a real browser on Travis, ma è più semplice utilizzare un browser senza testa, poiché Travis funziona su una macchina senza testa. PhantomJS è perfetto per questo, ed è preinstallato con il bootstrap di costruzione di Travis CI.
Per eseguire i test con PhantomJS, è necessario configurare il modulo WebDriver come questo nel file di configurazione .yml
Codeception:
modules:
config:
WPWebDriver:
url: 'http://127.0.0.1:8888'
browser: phantomjs
L'URL è importante. Ho trovato che il tentativo di utilizzare localhost
anziché 127.0.0.1
non funzionerà. Inoltre, se accidentalmente dimentichi il http://
, non funzionerà neanche. È possibile utilizzare la maggior parte delle porte 8***
, poiché la maggior parte di esse è aperta, ma ovviamente è necessario disporre di un server Web in esecuzione su quella porta per servire i file statici o eseguire l'applicazione PHP. Il modo più semplice per farlo, trovo, è quello di usare il webserver integrato di PHP.
Il file .travis.yml
potrebbe essere simile a questo:
# 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
avrete ovviamente bisogno di aggiungere Codeception a composer.json
il file del progetto:
composer require --dev codeception/codeception
Avrete anche bisogno di cambiare path/to/web/root
sopra al percorso della directory in cui si desidera la radice del documento del server.
Se desideri vedere una demo funzionante che esegue test WebDriver contro WordPress, puoi controllare this GitHub repo.