0

私はPHPUnit と一緒にphpunit-spiderlingを使用して、 jonnyw/php-phantomjsphantomjs経由でインストールされたPhantomJSでブラウザー/機能テストを実行しています<project>/bin。そのフォルダーはシステム パスにないため、次のようにテストを開始する必要があります。

PATH=$PATH:`pwd`/bin ./phpunit test/browser/tests

これは問題なく動作しますが、環境プレフィックスなしで、ホストされた CI でこれをセットアップするときに、生のコマンドに凝縮する必要があると思います。

./phpunit test/browser/tests

--bootstrapシステム パスをリセットするコマンドを実行するコマンドを試しましたがsystem()、役に立ちませんでしたphpunit.xml。残念ながら、Spiderling は Phantom コマンドをハードワイヤーで接続しており、システム パスで表示されることが期待されています。

これもsetUp()テスト方法として試してみましたが、それでは遅すぎます。Spiderling はすでに PhantomJS をランダムなポートで起動しようとして失敗しています。

(このコマンドは、Composer 経由でインストールされた PHPUnit./phpunitへの単なるシンボリック リンクです。)vendor/phpunit/phpunit/phpunit

4

1 に答える 1

1

この質問に加えて、次のことがわかります。

  • ホストされた CI ツールは、PHPUnit の外部でこれを達成する方法を提供します
  • 私が使用しているTravisは、phantomjsとにかく標準パスで提供しています

したがって、これは必要ないことがわかりましたが、それを達成するには2つの方法があるようです。私のアプローチではバックティックを実行する必要があるため、このenvアプローチが機能しないのではないかと思います。ただし、完全を期すために、両方を次に示します。

  • envアプローチは.travis.yml ファイルのエントリです。
  • before_script次のように、値を持つキーを試すこともできます。

    before_script:
      - export PATH=`pwd`/bin:$PATH
    

    作業ディレクトリはプロジェクトのルートに設定する必要があるため、pwdプラス サブディレクトリをシステム パスに新しいパスに追加する必要があります。

于 2014-12-15T20:27:44.147 に答える