2017-01-24 102 views
6

我試着寫在laravel測試,但我甚至無法運行示例測試,BCS我得到錯誤:Laravel測試未定義的方法

λ phpunit 
PHP Fatal error: Uncaught Error: Call to undefined method PHPUnit_Util_Configuration::getTestdoxGroupConfiguration() in E:\www\ikcms\vendor\phpunit\phpunit\src\TextUI\TestRunner.php:1042 
Stack trace: 
#0 E:\www\ikcms\vendor\phpunit\phpunit\src\TextUI\TestRunner.php(163): PHPUnit_TextUI_TestRunner->handleConfiguration(Array) 
#1 E:\xampp\php\pear\PHPUnit\TextUI\Command.php(176): PHPUnit_TextUI_TestRunner->doRun(Object(PHPUnit_Framework_TestSuite), Array) 
#2 E:\xampp\php\pear\PHPUnit\TextUI\Command.php(129): PHPUnit_TextUI_Command->run(Array, true) 
#3 E:\xampp\php\phpunit(46): PHPUnit_TextUI_Command::main() 
#4 {main} 
    thrown in E:\www\ikcms\vendor\phpunit\phpunit\src\TextUI\TestRunner.php on line 1042 

Fatal error: Uncaught Error: Call to undefined method PHPUnit_Util_Configuration::getTestdoxGroupConfiguration() in E:\www\ikcms\vendor\phpunit\phpunit\src\TextUI\TestRunner.php:1042 
Stack trace: 
#0 E:\www\ikcms\vendor\phpunit\phpunit\src\TextUI\TestRunner.php(163): PHPUnit_TextUI_TestRunner->handleConfiguration(Array) 
#1 E:\xampp\php\pear\PHPUnit\TextUI\Command.php(176): PHPUnit_TextUI_TestRunner->doRun(Object(PHPUnit_Framework_TestSuite), Array) 
#2 E:\xampp\php\pear\PHPUnit\TextUI\Command.php(129): PHPUnit_TextUI_Command->run(Array, true) 
#3 E:\xampp\php\phpunit(46): PHPUnit_TextUI_Command::main() 
#4 {main} 
    thrown in E:\www\ikcms\vendor\phpunit\phpunit\src\TextUI\TestRunner.php on line 1042 

當然,它發生在下載laravel後。

Laravel版本:5.3 的PHPUnit:5.0

+0

更新作曲家包後,我有這個相同的錯誤。 – rahman

回答

1

我升級Laravel的依賴inculding PHPUnit的前得到了同樣的錯誤。 此更新提供PHPUnit版本5.7.6,而不是版本5.6。*。 如果您使用您的計算機路徑的PHPUnit它會給你這個錯誤。 我認爲它會被修復,但目前您可以通過在您的項目根目錄中編寫php vendor/bin/phpunit來執行包含在Composer供應商中的二進制文件的PHPUnit。對我而言,它可以工作,你可以試試它。

0

正如@ julien-metral所說,在您計算機上全局安裝的PHPUnit版本比Laravel 5.4中使用的版本舊。您可以通過編輯~/.composer/composer.json文件,並改變phpunit/phpunit依賴版本升級它

"phpunit/phpunit": "~5.0", 

之後,你應該運行composer global update

3

如果跨多個項目使用phpunit,通常不會混淆全局安裝的phpunit,而是從項目的供應商文件夾運行它。

您可以檢查您的項目:

composer info phpunit/phpunit 

(如果你看到一個[InvalidArgumentException] Package phpunit/phpunit not found那麼我會composer require phpunit/phpunit --dev

由於Laravel includes phpunit by default你更可能可以運行

./vendor/bin/phpunit … 

,也

composer exec 'phpunit …' 

您可以確定您正在運行該項目的composer.json中指定的phpunit版本。

0

如果您在Windows中。只需在phpunit.xml附近創建phpunit.bat,然後將該腳本放入phpunit.bat。

CALL供應商\ BIN \ PHPUnit的

多數民衆贊成。然後嘗試運行phpunit。

相關問題