Не удалось запустить модульные тесты в среде PHPStorm
Когда я запускаю vendor/bin/phpunit
, мои тесты запускаются успешно. Однако, когда я нажимаю правой кнопкой мыши на файле тестов и нажимаю "Запуск тестов", я в конечном итоге вижу:
/usr/local/bin/php -dxdebug.coverage_enable=1 /private/var/folders/bj/t2w187x158g7rgghctgknwb80000gn/T/ide-phpunit.php --coverage-clover /Users/bkuhl/Library/Caches/WebIde70/coverage/services$tests.coverage --no-configuration /Users/bkuhl/Projects/myproject/services/app/tests
Testing started at 3:09 PM ...
Fatal error: Class IDE_PHPUnit_Framework_TestListener contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (PHPUnit_Framework_TestListener::addRiskyTest) in /private/var/folders/bj/t2w187x158g7rgghctgknwb80000gn/T/ide-phpunit.php on line 504
PHP Fatal error: Class IDE_PHPUnit_Framework_TestListener contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (PHPUnit_Framework_TestListener::addRiskyTest) in /private/var/folders/bj/t2w187x158g7rgghctgknwb80000gn/T/ide-phpunit.php on line 504
Call Stack:
0.0008 340040 1. {main}() /private/var/folders/bj/t2w187x158g7rgghctgknwb80000gn/T/ide-phpunit.php:0
PHP Stack trace:
PHP 1. {main}() /private/var/folders/bj/t2w187x158g7rgghctgknwb80000gn/T/ide-phpunit.php:0
Process finished with exit code 255
У меня есть PHPStorm, настроенный на использование path/to/vendor/autoload.php
Я временно изменил путь этого каталога для этого скриншота, но это вполне допустимый путь.
Кто-нибудь сталкивается с проблемами, используя возможности PHPStorm для запуска ваших тестов?
composer.json:
"require-dev": {
"way/generators": "dev-master",
"way/laravel-test-helpers": "dev-master",
"mockery/mockery": "*",
"codeception/aspect-mock": "*",
"phpunit/phpunit": "3.9.*@dev"
},
Ответы
Ответ 1
PhpStorm использует wrapper/helper script при выполнении тестов PHPUnit (для целей интеграции: мониторинг выполнения выполнения, трассировка стека и т.д.).
В настоящий момент этот помощник script не поддерживает PHPUnit 3.8 или 3.9 - всего 3,7 и ниже.
Соответствующий билет: http://youtrack.jetbrains.com/issue/WI-21666 - смотреть его (звезда/голос/комментарий), чтобы получать уведомление, когда оно будет разрешено.
P.S.
Эта проблема теперь исправлена, и исправление будет доступно в следующей публичной сборке EAP (новее, чем текущая 134.1456).
Ответ 2
Другое решение:
Set
"phpunit/phpunit": "3.7"
в composer.json
и запустите
composer update
Затем проблема будет решена.
это сработало и для меня...
IntelliJ IDEA не будет запускать тесты PHPUnit 4.0
Ответ 3
Некоторые пользователи с именем andriy komm добавили решение на основе ручной установки плагина php в среде IDE в потоке билета (http://youtrack.jetbrains.com/issue/WI-21666):
Обходной путь до фиксации:
-
перейти в /plugins/php/lib
-
сделать резервную копию php.jar
-
Используйте любой инструмент, который вы должны открыть, обычно это zip или другие инструменты сжатия или под ubuntu.
-
Перейти к скриптам /phpunit.php
-
Измените его, ищите класс "IDE_PHPUnit_Framework_TestListener" и добавьте следующую строку:
публичная функция addRiskyTest (PHPUnit_Framework_Test $test, исключение $e, $time) {} 6. Сохраните файл и обновите php.jar
Примечание 1: в зависимости от используемой ОС и инструмента вы можете распаковать .jar, чтобы изменить и сжать его обратно в банку снова. Использование файла roll on ubuntu Я мог пропустить этот шаг, отредактировать файл и обновить jar напрямую.
Редактирование/tmp/ide-phpunit.php НЕ помогает, потому что переопределяется файлом phpunit.php, о котором я упоминал выше.
Примечание 2: Также в зависимости от версии вы можете найти php.jar в других местах:
Либо здесь: перейдите в домашний каталог своих пользователей (windows/linux) и поиск в скрытом каталоге .Webide, while - номер в зависимости от версии phpstorm (например, G..Webide70)
Или здесь: Я думаю, что более ранние версии были названы как .IntelliJIdea а число в зависимости от вашей версии phpstorm.
И там используется один и тот же путь (/plugins/php/lib)
Работал для меня (Windows 7, PHPStorm 7, # PS-133.982).