2017-01-27 13 views
5

PHPUnitがローカルで問題なく実行されても、私のTravisCIビルドは致命的なエラーのためPHPUnit_Util_Configuration::getTestdoxGroupConfiguration()を参照して失敗しています。 TravisCIのComposerが、私がローカルにインストールしたのと同じバージョンのPHPUnitをインストールしていることを確認しました。TravisCI PHPUnit致命的なエラー - 定義されていないメソッドを呼び出すPHPUnit_Util_Configuration :: getTestdoxGroupConfiguration()

私は、recent patchがtestdoxグループの設定を具体的に参照していることに気がつきましたが、なぜその変更がTravisCI内でPHPUnitを壊していたのでしょうか?ここで

はTravisCIから作曲家:

- Installing phpunit/phpunit (5.7.6) Downloading: 100% 

そして、ここTravisCIからの致命的なエラーとスタックトレースです:

PHP Fatal error: Call to undefined method PHPUnit_Util_Configuration::getTestdoxGroupConfiguration() in /home/travis/build/twistofreality/dilmun/vendor/phpunit/phpunit/src/TextUI/TestRunner.php on line 1042 
PHP Stack trace: 
PHP 1. {main}() /home/travis/.phpenv/versions/5.6.5/bin/phpunit:0 
PHP 2. PHPUnit_TextUI_Command::main() /home/travis/.phpenv/versions/5.6.5/bin/phpunit:722 
PHP 3. PHPUnit_TextUI_Command->run() phar:///home/travis/.phpenv/versions/5.6.5/bin/phpunit/phpunit/TextUI/Command.php:104 
PHP 4. PHPUnit_TextUI_TestRunner->doRun() phar:///home/travis/.phpenv/versions/5.6.5/bin/phpunit/phpunit/TextUI/Command.php:152 
PHP 5. PHPUnit_TextUI_TestRunner->handleConfiguration() /home/travis/build/twistofreality/dilmun/vendor/phpunit/phpunit/src/TextUI/TestRunner.php:163 

答えて

9

問題はグローバルTravisCIのPHPUnitのバージョンとどのバージョンの不一致がありますComposerがインストールされています。最後の行に2番目はTravisCIのグローバルビンを参照するのに対し、(作曲出力ごとに、この場合は、バージョン5.7.6)

PHP 4. PHPUnit_TextUI_TestRunner->doRun() phar:///home/travis/.phpenv/versions/5.6.5/bin/phpunit/phpunit/TextUI/Command.php:152 
PHP 5. PHPUnit_TextUI_TestRunner->handleConfiguration() /home/travis/build/twistofreality/dilmun/vendor/phpunit/phpunit/src/TextUI/TestRunner.php:163 

最後の行の参照ベンダー/ PHPUnitの:スタックトレースの最後の2行に注意してください。/phpunit(バージョン5.6.5)。より新しいバージョンのパッチは、グローバルバージョンで何かを呼び出そうとしたときに何か問題が起きた可能性があります。

Composerによってインストールされたバージョンを使用するために.travis.ymlを更新し、vendor/bin/phpunit(とにかく任意のフラグ)を使用して問題を修正します。具体的には、この行を追加して.travis.ymlする(または、私の場合のように、既存のPHPUnitのラインを変更する)、トリックを行います:

script: 
    - vendor/bin/phpunit [phpunit flags here] 
1

は、単にあなたのtravis.ymlファイルに

script: 
    - vendor/bin/phpunit 

を追加します

関連する問題