29

我不知道它是否与 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%)

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

4

7 回答 7

74

似乎您在全球范围内安装的版本不符合最低要求的版本。尝试运行

phpunit --version

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

vendor/bin/phpunit

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

于 2017-01-26T10:16:02.507 回答
10

在我的情况下,以下命令在 Windows 环境中工作,\代替/

vendor\bin\phpunit
于 2017-08-28T09:20:03.017 回答
8

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

第 1 步:更新您的作曲家

composer update

第 2 步:运行 phpunit

vendor/bin/phpunit

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

vendor/bin/phpunit tests/Feature/ExampleTest.php
于 2017-06-26T15:37:20.313 回答
4

我有同样的问题,并通过此步骤解决:

检查差异版本

$ 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.
于 2019-10-02T08:03:13.130 回答
0

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

export PATH=vendor/bin:$PATH

在 Windows 10 中,您可以Path通过访问System PropertiesAdvanced选项卡并单击Environment Variables...按钮来访问您的环境变量。

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

于 2018-08-24T21:07:22.500 回答
0

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

于 2018-07-16T11:24:03.183 回答
0

对于任何遇到这种情况的人,vendor/bin/phpunit肯定可以,但您可能希望将此行添加到您的 .bashrc 或 .bash_profile 或任何方便您使其工作的东西。

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

*仅在 Linux 上测试

于 2019-10-13T12:56:55.623 回答