Подтвердить что ты не робот

Ошибка PHPunit Uncaught: вызов метода undefined 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%)

любые идеи, как это исправить?

4b9b3361

Ответ 1

Похоже, ваша версия, установленная глобально, не соответствует минимально необходимой версии. Попробуй запустить

phpunit --version

Бьюсь об заклад, вы получите что-то вроде 5.1. Команда php artisan dusk использует другую версию, которая находится в vendor/bin/phpunit. Таким образом, вы также можете использовать эту версию вместо. Просто введите:

vendor/bin/phpunit

вместо phpunit. Вы должны обновить свою глобальную версию phpunit, если она работает.

Ответ 2

Была та же проблема в Laravel 5.4. Это сработало для меня.

Шаг 1: обновите композитор

composer update

Шаг 2: запустите phpunit

vendor/bin/phpunit

Вы можете запустить специальный тест, указав файл

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

Ответ 3

В моем случае следующая команда работала в среде Windows с \ вместо /:

vendor\bin\phpunit

Ответ 4

У меня была такая же ошибка с усадьбой Laravel 5.6 когда я запускал команду phpunit от моего пользователя, она работает нормально, но когда я запускал ее с помощью sudo, я получал эту ошибку. попробуйте запустить эту команду от своего пользователя, но не sudo, возможно, она тоже работает для вас

Ответ 5

Одним из решений является добавление vendor/bin в начало вашего пути. В Unix-подобных ОС, работающих под управлением bash, вы можете добавить следующее в конец файла .bashrc:

export PATH=vendor/bin:$PATH

В Windows 10 вы можете получить доступ к переменной среды Path, перейдя на вкладку Свойства системы, Дополнительно и нажав кнопку Переменные среды...

.В любом случае, вставка vendor/bin в начало пути приведет к тому, что ваша ОС будет искать phpunit в. /vendor/bin. Если вы находитесь в корне вашего проекта laravel, он найдет исполняемый файл, включенный в Laravel. Если нет, то перейдем к использованию глобальной версии.

Ответ 6

У меня та же проблема, и с помощью этого шага:

Проверьте версию diff

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

Ответ 7

Для любого, кто испытывает это, vendor/bin/phpunit определенно работает, но вы можете добавить эту строку в ваш .bashrc или .bash_profile или любой другой удобный для вас способ заставить его работать.

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

* проверено только на Linux

Ответ 8

Обновите ваши зависимости: composer update.

Тогда Laravel не будет использовать phpunit, расположенный в "vendor/bin/phpunit".

Он будет использовать один в "vendor/vendor/phpunit". И там, это скрипт php. Вы можете посмотреть версию с php phpunit --version.