Ошибка 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 (более старая версия)