由于引用PHPUnit_Util_Configuration::getTestdoxGroupConfiguration()
的致命错误导致我的TravisCI构建失败,即使PHPUnit在本地运行时没有问题。我已经验证了TravisCI上的Composer正在安装与我在本地安装相同版本的PHPUnit。
我注意到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
答案 0 :(得分:9)
问题是PHPUnit的全局TravisCI版本与Composer正在安装的版本之间的版本不匹配。请注意堆栈跟踪的最后两行:
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
最后一行引用vendor / phpunit(在本例中,版本为5.7.6,根据Composer输出),而倒数第二行引用了TravisCI的全局bin / phpunit(版本5.6.5)。可能是最近版本中的补丁在尝试调用全局版本时会出现问题。
更新.travis.yml以使用vendor/bin/phpunit
(加上任何标志)来使用Composer安装的版本可以解决问题。具体来说,将此行添加到.travis.yml(或者,就像在我的情况下,修改现有的phpunit行),可以解决这个问题:
script:
- vendor/bin/phpunit [phpunit flags here]
答案 1 :(得分:1)
只需添加
script:
- vendor/bin/phpunit
到您的travis.yml
文件