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

Не удалось запустить модульные тесты в среде 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

enter image description here Я временно изменил путь этого каталога для этого скриншота, но это вполне допустимый путь.

Кто-нибудь сталкивается с проблемами, используя возможности 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"
},
4b9b3361

Ответ 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).

Ответ 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).