Ошибка Phpunit в PhpStorm
Я запускаю тесты в PhpStorm, и я получаю эту ошибку. Кто-нибудь знает, что на земле может вызвать это?
PHP Неустранимая ошибка: класс 'PHPUnit_TextUI_ResultPrinter' не найден в C:\Users\administrator1\AppData\Local\Temp\ide-phpunit.php в строке 249
Я запускаю тесты в других проектах, которые также используют ide-phpunit.php
, и они работают нормально.
Ответы
Ответ 1
Глупая ошибка с моей стороны... просто забыл добавить phpunit в качестве зависимости в проекте. Для тех, кто получает эту ошибку, для composer.json добавьте:
"require-dev": {
"phpunit/phpunit": "3.7.*"
},
И затем запустите:
composer update
Это решило проблему.
Ответ 2
У меня была такая же проблема с Ubuntu 16.10, phpStorm 2017.2 и Laravel 5.5
Исправлено, удалив phpunit из моей Ubuntu-системы с помощью
sudo apt-get remove phpunit
sudo apt-get install --autoremove
My phpStorm-Configuration (Файл → Настройки → Языки и рамки → PHP → Рамки тестов)
Прекрасно работает!
Ответ 3
В моем случае проблема была вызвана следующими причинами:
- Я установил phpunit, используя композитор с командой
composer require phpunit/phpunit
. Я не обращал внимания, что по умолчанию он использовал php7, и он установил phpunit6, который имеет имена классов с пространствами имен (PHPUnit\TextUI\ResultPrinter
).
- IDE запускает старую версию phpunit, которая ожидает имена классов без пространств имен (
PHPUnit_TextUI_ResultPrinter
)
Я решил переустановить phpunit
ту же команду композитора, что и выше, но под php 5.6
(потому что было важно быть совместимым с php5.6), и он установил phpunit 5.7
.
Но можно пойти с более новой версией phpunit и php: Settings > PHP > PHPUnit :: "Use composer autoloader"
(установить путь к исполняемому файлу phpunit внутри вендоров (это было vendors/bin/phpunit
в моем случае))
Ответ 4
Я получил эту ошибку при использовании различных ключей-модификаторов F10 в PHPStorm, потому что не знал, где найти правильный PHPUnit.
В настройках (ctrl-alt-s) найдите PHPUnit. В моем случае я хотел установить его следующим образом:
- "использовать автозагрузчик композитора"
- Путь к script:
full-path-to-project/vendor/autoload.php
(это поле было пустым для меня, с ошибкой, отображаемой в диалоговом окне)
В противном случае он попытается использовать некоторую кешированную версию библиотеки (/tmp/ide-phpunit.php
) вместо версии композитора. Если вы предпочитаете использовать некоторые глобально установленные двоичные файлы, вы можете, конечно, использовать опцию Path to phpunit.phar
.
Ответ 5
После обновления до последней версии composer, composer run-script drupal-phpunit-upgrade
, PHPStorm по-прежнему отображался на старую версию, хотя я загружал через автозагрузчик. Я выбрал "Языки и рамки> Php> Тестировать рамки" и нажал кнопку "Обновить" в той же строке, что и "Путь к сценарию".
Теперь моя версия PHPUnit читает 6.5.8.
Ответ 6
У меня была такая же проблема с PHP7.1 и PHPUnit 6.3 через композитор, но я решил через phpunit.phar. (в параметрах: выберите путь к phpunit.phar, щелкните по загрузке и щелкните по обновлению)
![введите описание изображения здесь]()
Ответ 7
В моем случае в настройках phpstorm → php → CLI был установлен локальный, когда ему нужно было использовать удаленный php 7 (ubuntu).
Потому что я использую бродячий ящик, чтобы настроить мою среду на ubuntu.
Ответ 8
Недавно я столкнулся с похожей ошибкой PHPUnit_TextUI_ResultPrinter not found in TeamCity.php on line 19
Я использую PhpStorm 2018.3.3
. При использовании терминала от PhpStorm $ phpunit PHPUnit 7.5.1 by Sebastian Bergmann and contributors.
из моей системы Ubuntu $ phpunit --version PHPUnit 5.1.3 by Sebastian Bergmann and contributors.
Я должен был убедиться, что моя система Ubuntu PHPUnit обновлена до 7.5.1. Итак, вот что я сделал:
sudo wget https://phar.phpunit.de/phpunit-7.5.1.phar
sudo chmod +x phpunit-7.5.1.phar
sudo mv phpunit-7.5.1.phar /usr/local/bin/phpunit
Затем я зашел в PhpStorm: Файл> Настройки> Язык и рамки> PHP> Тестовые рамки и убедился, что версия PHPUnit также 7.5.1
А потом из терминала PhpStorm: phpunit
и тестовые примеры работали отлично.
Ответ 9
Я получил ту же ошибку. Решено использовать phpunit4.8 (более старая версия)