はい、WebDriver を使用して実行される受け入れテストを含む Codeception テストを Travis CI で実行できます。
Travis の実際のブラウザーでテストを実行することは可能ですが、Travis はヘッドレス マシンで実行されているため、ヘッドレス ブラウザーを使用するのが最も簡単です。PhantomJSはこれに最適で、Travis CI のビルド ブートストラップがプリインストールされています。
PhantomJS でテストを実行するには、.yml
Codeception 構成ファイルで WebDriver モジュールを次のように構成する必要があります。
modules:
config:
WPWebDriver:
url: 'http://127.0.0.1:8888'
browser: phantomjs
URLは重要です。localhost
の代わりに使用しようとしてもうまくいかないことがわかりました127.0.0.1
。また、誤って を省略した場合もhttp://
機能しません。ほとんどのポートは開いているため、ほとんどのポートを使用できます8***
が、もちろん、静的ファイルを提供したり、PHP アプリケーションを実行したりするには、そのポートで Web サーバーを実行する必要があります。これを行う最も簡単な方法は、PHP の組み込み Web サーバーを使用することです。
ファイル.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
上記のパスを、サーバーのドキュメント ルートを配置するディレクトリへのパスに変更する必要もあります。
WordPress に対して WebDriver テストを実行しているデモを確認したい場合は、この GitHub リポジトリをチェックしてください。