PHPunit Uncaught Error:调用未定义的方法PHPUnit_Util_Configuration :: getTestdoxGroupConfiguration()

时间:2017-01-26 06:37:14

标签: laravel phpunit laravel-5.4

我不知道它是否与Laravel 5.4有关。当我在安装laravel 5.4而不进行任何更改后运行phpunit命令时,我得到Uncaught Error: Call to undefined method PHPUnit_Util_Configuration::getTestdoxGroupConfiguration()但是当我运行php artisan dusk时它正常运行

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

Fatal error: Uncaught Error: Call to undefined method PHPUnit_Util_Configuration::getTestdoxGroupConfiguration() in C:\xampp\htdocs\ublocker\vendor\phpunit\phpunit\src\TextUI\TestRunner.php:1046
Stack trace:
 C:\xampp\htdocs\ublocker\vendor\phpunit\phpunit\src\TextUI\TestRunner.php(167): PHPUnit_TextUI_TestRunner->handleConfiguration(Array)
C:\xampp\php\pear\PHPUnit\TextUI\Command.php(176): PHPUnit_TextUI_TestRunner->doRun(Object(PHPUnit_Framework_TestSuite), Array)
C:\xampp\php\pear\PHPUnit\TextUI\Command.php(129): PHPUnit_TextUI_Command->run(Array, true)
C:\xampp\php\phpunit(46): PHPUnit_TextUI_Command::main()
{main}
thrown in C:\xampp\htdocs\ublocker\vendor\phpunit\phpunit\src\TextUI\TestRunner.php on line 1046

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

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

c:\xampp\htdocs\ublocker>php artisan dusk
PHPUnit 5.7.7 by Sebastian Bergmann and contributors.

F.                                                                  2 / 2 (100%)

任何想法如何解决这个问题?

7 个答案:

答案 0 :(得分:56)

似乎您在全球安装的版本不符合最低要求版本。尝试运行phpunit --version,我打赌你会得到一些像5.1。 php artisan dusk使用位于" vendor / bin / phpunit"中的不同版本。因此,您也可以使用此版本。只需键入:" vendor / bin / phpunit"而不是" phpunit"。如果可以的话,你必须升级你的全球phpunit版本

答案 1 :(得分:7)

在Laravel 5.4中遇到同样的问题。这对我有用。

第1步:更新你的作曲家

composer update

第2步:运行phpunit

vendor/bin/phpunit

您可以通过指定文件

来运行特定测试
vendor/bin/phpunit tests/Feature/ExampleTest.php

答案 2 :(得分:7)

在我的情况下,以下命令在Windows环境中有效,“/”代替“/”

供应商\ BIN \ PHPUnit的

答案 3 :(得分:0)

我在宅基laravel 5.6上遇到了相同的错误 当我从用户运行phpunit命令时,它工作正常,但是当我通过sudo运行它时,出现了该错误。尝试从您的用户处运行此命令,而不是sudo,也许它也对您有用

答案 4 :(得分:0)

一种解决方案是将供应商/箱添加到路径的开头。在运行bash的Unix之类的OS上,您可以在.bashrc文件的末尾添加以下内容:

export PATH=vendor/bin:$PATH

在Windows 10中,您可以通过访问系统属性高级标签并单击环境变量...来访问Path环境变量。 按钮。

无论哪种方式,在路径的前面插入vendor / bin都会使您的操作系统在./vendor/bin中寻找phpunit。如果您在laravel项目的根目录下,它将找到Laravel随附的可执行文件。如果没有,它将继续使用全局版本。

答案 5 :(得分:0)

我在此步骤中解决了同样的问题:

检查差异版本

$ phpunit --version
PHPUnit 6.5.5 by Sebastian Bergmann and contributors.

$ ./vendor/bin/phpunit --version
PHPUnit 8.3.5 by Sebastian Bergmann and contributors.

更新全局phpunit:

如果版本不相等,则用

更新phpunit。
 composer global require phpunit/phpunit:^8

再次检查版本

$ phpunit --version
PHPUnit 8.3.5 by Sebastian Bergmann and contributors.

$ ./vendor/bin/phpunit --version
PHPUnit 8.3.5 by Sebastian Bergmann and contributors.

答案 6 :(得分:0)

对于任何遇到这种情况的人,vendor/bin/phpunit绝对可以,但是您可能希望将此行添加到.bashrc或.bash_profile或任何方便使用的行中。

PATH="./vendor/bin:$PATH"

*仅在Linux上进行了测试