Неисправимая ошибка TravisCI PHPUnit - вызов неопределенного метода PHPUnit_Util_Configuration::getTestdoxGroupConfiguration()
Моя сборка TravisCI не выполняется из-за фатальной ошибки ссылки PHPUnit_Util_Configuration::getTestdoxGroupConfiguration()
хотя PHPUnit работает без проблем локально. Я убедился, что Composer на TravisCI устанавливает ту же версию PHPUnit, что и локальную.
Я заметил, что недавний патч ссылается на конфигурацию групп testdox, но я не могу понять, почему это изменение могло сломать PHPUnit в TravisCI, а не в моей локальной версии.
Вот композитор от 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
2 ответа
Проблема заключается в несовпадении версий между глобальной версией TravisCI PHPUnit и тем, что устанавливает 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 (в данном случае на выход Composer версии 5.7.6), а вторая-последняя строка ссылается на глобальный bin / phpunit TravisCI (версия 5.6.5). Вероятно, патч в более поздней версии что-то ломает при попытке вызвать что-то в глобальной версии.
Обновление.travis.yml для использования vendor/bin/phpunit
(плюс любые флаги), чтобы использовать версию, установленную Composer, исправляет проблему. В частности, добавление этой строки в.travis.yml (или, как в моем случае, изменение существующей строки phpunit), сделает свое дело:
script:
- vendor/bin/phpunit [phpunit flags here]
Просто добавь
script:
- vendor/bin/phpunit
на ваш travis.yml
файл