我不知道它是否与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%)
任何想法如何解决这个问题?
答案 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。 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上进行了测试