2014-01-28 3 views
30

Когда я запустил vendor/bin/phpunit, мои тесты все успешно выполняются. Тем не менее, когда я правая кнопка мыши на файл тестов и нажмите кнопку «Выполнить тесты» Я заканчиваю видящий:Невозможно запустить модульные тесты в IDE PHPStorm

/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" 
}, 
+1

Какую версию phpstorm вы используете? И что такое версия phpunit? – zerkms

+0

@zerkms - Это было бы хорошей информацией для меня, чтобы включить .... v7.1.1 – Webnet

+1

... и как насчет ** PHPUnit version ** ?? .. Или я просто думаю, что это 3,8? – LazyOne

ответ

43

PhpStorm использует обертку/вспомогательный скрипт при выполнении PHPUnit тесты (для целей интеграции: ход выполнения монитора, трассировки стека и т.д.).

В настоящий момент этот вспомогательный скрипт не поддерживает PHPUnit 3.8 или 3.9 - всего 3.7 и ниже.

Соответствующий билет: http://youtrack.jetbrains.com/issue/WI-21666 - смотреть его (звезда/голос/комментарий), чтобы получать уведомление, когда оно будет разрешено.

P.S.
Эта проблема теперь исправлена, и исправление будет доступно в следующей публичной сборке EAP (новее, чем текущая 134.1456).

+2

Отлично, спасибо! – Webnet

+2

К сожалению, это все еще затрагивает IntelliJ IDEA 12.1.6. Если бы я мог переопределить способ генерации временного файла ... – Darien

+0

Я просто столкнулся с этим с PhpStorm 7.1.3. PHPUnit в настоящее время находится в 4.2.0! Думаю, мне придется понизиться. – CXJ

6

Другое решение: Set

"phpunit/phpunit": "3.7" 

в composer.json

и запустить

composer update 

Тогда этот вопрос будет решен.

это работало для меня также ...

IntelliJ IDEA won't run PHPUnit 4.0 tests

+0

У меня такая же проблема с дженкинсами. Спасибо! – Mirouf

6

Некоторые пользователя с именем Andriy Комм добавляют раствор на основе ручной фиксации PHP плагин в IDE в потоке билетов (http://youtrack.jetbrains.com/issue/WI-21666):

Обходное решение до его устранения:

  1. перейти к/плагин/PHP/Lib

  2. сделать резервную копию php.jar

  3. Используйте любой инструмент, вы должны открыть файл, как правило, почтовый индекс или другие инструменты компресса или под убунтом файл ролик.

  4. Перейти к скриптам/phpunit.PHP

  5. Изменить его, отыскивая класса "IDE_PHPUnit_Framework_TestListener" и добавив туда следующую строку:

общественная функция addRiskyTest (PHPUnit_Framework_Test $ тест, исключение $ е, $ времени) {} 6 Сохраните файл и обновите файл php.jar

Примечание 1: в зависимости от используемой ОС и инструмента вам может потребоваться распаковать .jar, чтобы изменить и снова сжать его обратно в банку. Использование файла roller on ubuntu Я могу пропустить этот шаг, отредактировать файл и сразу обновить банку .

Редактирование /tmp/ide-phpunit.php Не помогает, потому что он получает , перезагруженный файлом phpunit.php, о котором я упоминал выше.

Примечание 2: Также в зависимости от версии, вы можете найти php.jar в другом месте:

Либо здесь: Go для пользователей домашнего каталога (Windows/Linux) и поиск VOR скрытый каталог .Webide , в то время как это число в зависимости от вашей версии PhpStorm (е G. .Webide70.)

Или вот: Я думаю, что более ранние версии были названы как .IntelliJIdea в то время как это число в зависимости от вашей версии PhpStorm.

И использовать один и тот же путь (/ плагины/PHP/Lib)

работал для меня (Windows 7, PhpStorm 7, # PS-133,982).

Смежные вопросы