Ошибка 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%)
любые идеи, как это исправить?
Ответы
Ответ 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
.