30

i don't know if it's related to Laravel 5.4. when i run phpunit command after installing laravel 5.4 without making any changes i get Uncaught Error: Call to undefined method PHPUnit_Util_Configuration::getTestdoxGroupConfiguration() but when i run php artisan dusk it runs normally

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%)

any ideas how to fix this?

ishadif
  • 721
  • 2
  • 8
  • 20

7 Answers7

76

Seems like your version installed globally does not meet minimal required version. Try to run

phpunit --version

I bet you will get some like 5.1. The php artisan dusk command uses different version which is located in vendor/bin/phpunit. So, you are also able to use this version instead. Just type:

vendor/bin/phpunit

instead of phpunit. You have to upgrade your global phpunit version if it works.

AymDev
  • 6,626
  • 4
  • 29
  • 52
arku
  • 1,687
  • 17
  • 16
  • I tried update phpunit globally but still didn't works. I bet my xampp causing this error. Do you how to update phpunit in xampp? They are still using phpunit 3.5.7 version wth – ishadif Jan 26 '17 at 10:23
  • did you tried to launch it as I said with "vendor/bin/phpunit" in terminal? – arku Jan 26 '17 at 10:26
  • yeah i did and it worked but i still curious how to update it globally. not very convenient to run `vendor\bin\phpunit` every time I run the test, right? – ishadif Jan 26 '17 at 10:30
  • Next actions is very depends to your operations system. Basically you have to find where is your binary located and replace it with a new one – arku Jan 26 '17 at 10:32
  • you're right. i just remove phpunit related file in xampp\php directory (file and the batch file). it's not conflicted anymore with phpunit on my project – ishadif Jan 26 '17 at 11:26
  • Official doc to install PhpUnit 5.7, last version for PHP 5.6: https://phpunit.de/manual/5.7/en/installation.html Look for text "To globally install the PHAR" – Rav Mar 29 '17 at 10:29
  • PHPUnit 7.5.20 by Sebastian Bergmann and contributors. You loose your bet – vincent PHILIPPE Jul 29 '20 at 08:29
11

In my case the following command worked in windows environment, with \ in place of /:

vendor\bin\phpunit
AymDev
  • 6,626
  • 4
  • 29
  • 52
Taranjeet Singh
  • 147
  • 1
  • 5
8

I had the same problem in Laravel 5.4. The following worked for me:

Step 1: Update your composer dependencies:

composer update

Step 2: Run phpunit:

vendor/bin/phpunit

You can run a specific test by specifying the file:

vendor/bin/phpunit tests/Feature/ExampleTest.php
TheBlckbird
  • 87
  • 1
  • 9
mpalencia
  • 5,481
  • 4
  • 45
  • 59
4

I have same issue ans solved with this step :

Check diff version

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

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

Update global phpunit:

if versions not equal update phpunit with

 composer global require phpunit/phpunit:^8

check again versions

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

$ ./vendor/bin/phpunit --version
PHPUnit 8.3.5 by Sebastian Bergmann and contributors.
Ali Yousefi
  • 472
  • 4
  • 11
3

For any who is experiencing this, vendor/bin/phpunit definitely works but you might want to add this line to your .bashrc or .bash_profile or whatever convenient for you to make it works.

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

*tested on Linux only

Hussam Adil
  • 502
  • 7
  • 13
0

I had same error with homestead laravel 5.6 when I ran phpunit command from my user it is works fine but when I ran it by sudo I got that error. try to run this command from your user not sudo maybe its work for you too

Mhmd
  • 406
  • 5
  • 12
0

One solution is to add vendor/bin to the start of your path. On Unix like OSes running bash you can add the following to the end of your .bashrc file:

export PATH=vendor/bin:$PATH

In Windows 10, you can access your Path environment variable by accessing System Properties, Advanced tab and clicking the Environment Variables... button.

Either way, inserting vendor/bin at the front of the path will cause your OS to look for phpunit in ./vendor/bin. If you're in the root of your laravel project, it'll find the executable included with Laravel. If not, it'll move on to using the global version.

JohanTux
  • 382
  • 4
  • 11