2016-03-22 42 views
3

我使用這個functional.suite.yml:如何使用Symfony2爲功能測試配置代碼化?

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

我構建和運行測試,並獲得:

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' 

我不知道如何使這個運行。有什麼建議麼?

回答

2

它看起來像Code Composer Phar文件和Composer安裝的庫之間的通常版本衝突。

Codeception文件與PHPUnit 4.8.23捆綁在一起,但您在供應商目錄中安裝了PHPUnit < 4.7.0,並且自動加載器設法從供應商目錄加載PHPUnit_Util_Test類。

從供應商卸載PHPUnit或使用Composer安裝Codeception。

鏈接到相關的變化PHPUnit中: https://github.com/sebastianbergmann/phpunit/commit/32feefd37c820d122acac70fff0ee25cf0764612#diff-d2b0b699e9f0cfd6bd35cb3338167223R37

+0

呀,Codeception藥業自動使用供應商的版本,如果被發現。這對我來說很奇怪,但只使用Phar或供應商作品。 –

+0

@SebastianTkaczyk我在2017年2月的版本2.2.10中實現了該功能。它是否對您造成任何問題? – Naktibalda

+0

對我來說這並不直觀。對我來說很明顯,在升級某些版本的代碼時(例如,針對PHPUnit進行測試),我已經在供應商中使用了舊版本。爲了測試/遷移的目的,我下載了新版本的i'.phar'格式,使用它來運行我的代碼。如果我記得,我正在遷移我的舊代碼測試,並且想要檢查它是如何在新版本上運行的。 –