18

Codeception を使用してテストを作成しています (私は初心者ですが、学習中です)。これには、現時点では受け入れテストと単体テストが含まれます。

リポジトリを Travis CI に追加して、各コミット後にテスト プロセスを自動化し、ビルド ステータス タグを付けたいと考えています。

私は質問したい;

  1. Travis-CI は codeception テストを実行できますか?
  2. Travis-CI はブラウザをエミュレートする codeception 受け入れテストを実行できますか?
  3. 両方の答えが「いいえ」の場合、他にできる CI ツールはありますか?

ありがとうございました。

4

3 に答える 3

9

はい、WebDriver を使用して実行される受け入れテストを含む Codeception テストを Travis CI で実行できます。

Travis の実際のブラウザーでテストを実行することは可能ですが、Travis はヘッドレス マシンで実行されているため、ヘッドレス ブラウザーを使用するのが最も簡単です。PhantomJSはこれに最適で、Travis CI のビルド ブートストラップがプリインストールされています。

PhantomJS でテストを実行するには、.ymlCodeception 構成ファイルで 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 リポジトリをチェックしてください。

于 2016-07-05T13:45:13.333 に答える