2017-01-27 6 views
5

Mein TravisCI-Build schlägt aufgrund eines schwerwiegenden Fehlers fehl, der auf PHPUnit_Util_Configuration::getTestdoxGroupConfiguration() verweist, obwohl PHPUnit ohne Probleme lokal ausgeführt wird. Ich habe überprüft, dass Composer auf TravisCI die gleiche Version von PHPUnit installiert, wie ich es lokal installiert habe.TravisCI PHPUnit Schwerwiegender Fehler - Aufruf zu undefinierter Methode PHPUnit_Util_Configuration :: getTestdoxGroupConfiguration()

Ich habe festgestellt, dass ein recent patch testetox Gruppen Konfiguration speziell verweist, aber ich kann nicht herausfinden, warum diese Änderung PHPUnit innerhalb TravisCI, aber nicht meine lokale Version gebrochen haben könnte.

Hier ist der Komponist von TravisCI:

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

Und hier ist der fatale Fehler und Stack-Trace von 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 

Antwort

9

Das Problem ist ein Versionskonflikt zwischen der globalen TravisCI Version von PHPUnit und was Komponist installiert. Beachten Sie die letzten beiden Zeilen des Stack-Trace:

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 

Die letzte Zeile verweist Verkäufer/phpunit (in diesem Fall, Version 5.7.6, pro Composer-Ausgang), während die vorletzte Zeile TravisCI die globale bin verweist/phpunit (Version 5.6.5). Es ist wahrscheinlich, dass der Patch in der neueren Version etwas unterbricht, wenn er versucht, etwas in der globalen Version aufzurufen.

Aktualisierung .travis.yml zu verwenden vendor/bin/phpunit (plus was auch immer Flags), um die von Composer installierte Version zu verwenden, behebt das Problem. Insbesondere .travis.yml diese Zeile hinzugefügt (oder, wie in meinem Fall, die Änderung der bestehenden phpunit Linie), den Trick:

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

Einfach

script: 
    - vendor/bin/phpunit 

auf Ihre travis.yml Datei hinzufügen

Verwandte Themen