twi*_*ity 5 php phpunit travis-ci
PHPUnit_Util_Configuration::getTestdoxGroupConfiguration()即使PHPUnit在本地运行没有问题,我的TravisCI构建也因为致命的错误引用而失败.我已经验证了TravisCI上的Composer正在安装与我在本地安装的相同版本的PHPUnit.
我注意到最近的一个补丁专门引用了testdox组配置,但我无法弄清楚为什么这个改变可能会破坏TravisCI中的PHPUnit而不是我的本地版本.
这是TravisCI的作曲家:
- Installing phpunit/phpunit (5.7.6) Downloading: 100%
Run Code Online (Sandbox Code Playgroud)
这是来自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
Run Code Online (Sandbox Code Playgroud)
问题是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
Run Code Online (Sandbox Code Playgroud)
最后一行引用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]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1424 次 |
| 最近记录: |