PHPunit Uncaught Error: Call to undefined method PHPUnit_Util_Configuration::getTestdoxGroupConfiguration()

PHPunit Uncaught Error: Call to undefined method PHPUnit_Util_Configuration::getTestdoxGroupConfiguration()

不知道和Laravel 5.4有没有关系。当我 运行 phpunit 在安装 laravel 5.4 之后不做任何更改的命令时,我得到 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%)

有什么解决办法吗?

您的全局安装版本似乎不符合最低要求版本。尝试 运行

phpunit --version

我打赌你会得到一些类似 5.1 的东西。 php artisan dusk 命令使用位于 vendor/bin/phpunit 中的不同版本。因此,您也可以改用此版本。只需输入:

vendor/bin/phpunit

而不是 phpunit。如果它有效,你必须升级你的全局 phpunit 版本。

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

第 1 步:更新作曲家

composer update

第 2 步:运行 phpunit

vendor/bin/phpunit

您可以通过指定文件运行进行特定测试

vendor/bin/phpunit tests/Feature/ExampleTest.php

在我的例子中,以下命令在 windows 环境中工作,\ 代替 /

vendor\bin\phpunit

我和 homestead 有同样的错误 laravel 5.6 当我从我的用户 运行 phpunit 命令时它工作正常但是当我通过 sudo 运行 它时我得到了那个错误。尝试 运行 来自您的用户的此命令而不是 sudo 也许它对您也有用

一种解决方案是将 vendor/bin 添加到路径的开头。在像 OSes 运行 bash 这样的 Unix 上,您可以将以下内容添加到 .bashrc 文件的末尾:

export PATH=vendor/bin:$PATH

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

无论哪种方式,在路径前面插入 vendor/bin 都会导致您的 OS 在 ./vendor/bin 中查找 phpunit。如果您在 laravel 项目的根目录下,它将找到 Laravel 中包含的可执行文件。如果没有,它将继续使用全球版本。

我有同样的问题通过这一步解决了:

检查差异版本

$ 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.

对于遇到此问题的任何人,vendor/bin/phpunit 绝对有效,但您可能希望将此行添加到您的 .bashrc 或 .bash_profile 或任何方便您使其有效的内容。

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

*仅在 Linux 上测试