2016-03-22 8 views
3

Ich verwende dieses functional.suite.yml:Wie wird die Codeception für den Funktionstest mit Symfony2 konfiguriert?

class_name: FunctionalTester 
modules: 
    enabled: 
     - Symfony2 
     - \Helper\Functional 

ich bauen und führen Tests und erhalten:

Trying to Log in and see result (LoginCept)... PHP Fatal error: Undefined class constant 'UNKNOWN' in phar:///usr/local/bin/codecept/vendor/phpunit/phpunit/src/Framework/TestResult.php on line 592 
PHP Stack trace: 
PHP 1. {main}() /usr/local/bin/codecept:0 
PHP 2. require_once() /usr/local/bin/codecept:7 
PHP 3. Symfony\Component\Console\Application->run() phar:///usr/local/bin/codecept/codecept:34 
PHP 4. Symfony\Component\Console\Application->doRun() phar:///usr/local/bin/codecept/vendor/symfony/console/Application.php:123 
PHP 5. Symfony\Component\Console\Application->doRunCommand() phar:///usr/local/bin/codecept/vendor/symfony/console/Application.php:192 
PHP 6. Symfony\Component\Console\Command\Command->run() phar:///usr/local/bin/codecept/vendor/symfony/console/Application.php:844 
PHP 7. Codeception\Command\Run->execute() phar:///usr/local/bin/codecept/vendor/symfony/console/Command/Command.php:259 
PHP 8. Codeception\Command\Run->runSuites() phar:///usr/local/bin/codecept/src/Codeception/Command/Run.php:189 
PHP 9. Codeception\Codecept->run() phar:///usr/local/bin/codecept/src/Codeception/Command/Run.php:262 
PHP 10. Codeception\Codecept->runSuite() phar:///usr/local/bin/codecept/src/Codeception/Codecept.php:172 
PHP 11. Codeception\SuiteManager->run() phar:///usr/local/bin/codecept/src/Codeception/Codecept.php:203 
PHP 12. Codeception\PHPUnit\Runner->doEnhancedRun() phar:///usr/local/bin/codecept/src/Codeception/SuiteManager.php:153 
PHP 13. PHPUnit_Framework_TestSuite->run() phar:///usr/local/bin/codecept/src/Codeception/PHPUnit/Runner.php:89 
PHP 14. PHPUnit_Framework_TestCase->run() phar:///usr/local/bin/codecept/vendor/phpunit/phpunit/src/Framework/TestSuite.php:747 
PHP 15. PHPUnit_Framework_TestResult->run() phar:///usr/local/bin/codecept/vendor/phpunit/phpunit/src/Framework/TestCase.php:724 



FATAL ERROR. TESTS NOT FINISHED. 
Undefined class constant 'UNKNOWN' 

Ich habe keine Ahnung, wie das läuft zu machen. Irgendwelche Vorschläge?

Antwort

2

Es sieht wie ein normaler Versionskonflikt zwischen Codeception phar-Datei und von Composer installierten Bibliotheken aus.

Codeception Datei ist mit PHPUnit 4.8.23 gebündelt, aber Sie haben PHPUnit < 4.7.0 im Lieferantenverzeichnis installiert und Autoloader verwaltet, um PHPUnit_Util_Test Klasse aus Händlerverzeichnis zu laden.

Deinstallieren Sie PHPUnit vom Hersteller oder installieren Sie stattdessen Codeception mit Composer.

Link zur entsprechenden Änderung in PHPUnit: https://github.com/sebastianbergmann/phpunit/commit/32feefd37c820d122acac70fff0ee25cf0764612#diff-d2b0b699e9f0cfd6bd35cb3338167223R37

+0

Ja, Codeception phar verwenden Anbieter Version automatisch, wenn diese gefunden wurde. Es ist seltsam für mich, aber nur phar oder Hersteller funktioniert. –

+0

@SebastianTkaczyk Ich habe dieses Feature in Version 2.2.10 im Februar 2017 implementiert. Gibt es Probleme für Sie? – Naktibalda

+0

Für mich ist es nicht intuitiv. Es ist für mich offensichtlich, dass ich beim Upgrade einer Codeversion (Test für PHPUnit für Beispiel) in den Hersteller meine alte Version bekommen habe. Und zu Test-/Migrationszwecken lade ich das neue Version-'' phar'-Format herunter, um meinen Code damit zu starten. Wenn ich mich erinnere, migrierte ich meine alten Codeception Tests und möchte überprüfen, wie es auf der neuen Version läuft. –