Сейчас я пытаюсь настроить PhpStorm для модульного тестирования. Что бы я ни делал, я получаю это
Process finished with exit code 1 Cannot find PHPUnit in include path ...
PHPUnit (через командную строку) доступен из любого места; Я установил правильный путь include и добавил PHPUnit во внешние библиотеки. Без шансов.
Возможно ли это вообще или работает только с установками через PEAR? Я проработал все связанные с этим вопросы, я на Mac и PHPUnit работает плавно через CLI.
Патрик Висма опубликовал решение на http://youtrack.jetbrains.com/issue/WI-13429 :
Измените конфигурацию для phpunit.xml в PHPStorm и установите параметры интерпретатора следующим образом:
-d auto_prepend_file=/path/to/vendor/autoload.php
Ответ @ aderuwe работает, но эта конфигурация не ограничена для каждого проекта, это для всех проектов. Поскольку PHPStorm 6 (фактически даже версия EAP PS-126.260
), вы можете сделать следующее:
File
-> Settings
-> PHP
-> PHPUNIT
. Use custom loader
а затем введите файл autoload.php
из каталога поставщиков ваших проектов. Этот автозагрузчик автоматически загрузит все зависимости, управляемые Composer (включая PHPUnit). phpunit.xml.dist
из каталога app
вашего проекта). Это необходимо повторить для каждого проекта , но необходимо выполнить одно из следующих действий.
Вам необходимо правильно настроить параметры по умолчанию в PHPStorm.
Run
-> Edit Configurations...
или просто щелкните раскрывающееся меню на панели инструментов и выберите Edit Configurations...
Defaults
по Defaults
-> PHPUnit
Test Scope
выберите « Defined in configuration file
Interpreter options
пуст PHPUnit
(над стандартами по Defaults
) и удалите любую запись под ним (чтобы в следующий раз, когда вы тестируете конкретный файл и т. Д., Он настроит новый, но использует новый по умолчанию). Я бы предположил, что PhpStorm полагается на поиск PHPUnit в include_path самого php.ini, а не на ваш проект.
Вы можете попробовать добавить каталог поставщика / bin локального проекта в include_path php.ini, но в конечном итоге это похоже на то, что PhpStorm может выиграть от поддержки установки композитора и запуска phpunit самого проекта, если он доступен. На самом деле проблема открыта на их трекере, поэтому я бы порекомендовал вам войти туда и повышать ее: http://youtrack.jetbrains.com/issue/WI-13429
Я хочу добавить, что текущая версия PHPStorm (7.1) хорошо работает только с предыдущей версией PHPUnit (3.7). И он не работает с 4.0 и выше. Если вы скачали phpunit.phar из http://phpunit.de , вы можете указать PHPStorm на него через Settings => PHP => PHPUnit => Путь к phpunit.phar
PHPStorm имеет собственный скрипт runUpen PHPUnit ( ide-phpunit.php
), который он использует внутри себя для работы с различными версиями PHPUnit и для интеграции IDE, и это просто опирается на путь включения и расположение папки PEAR
.
Для этого он выполняет:
public static function checkIncludePath() { //check include path $PHPUnitParentDirectory = self::getPHPUnitParentDirectory(); if (is_null($PHPUnitParentDirectory)) { echo "Cannot find PHPUnit in include path (" . ini_get('include_path') . ")"; exit(IDE_PHPUnit_Loader::FAILURE_EXIT); } } /** * @return null | string */ private static function getPHPUnitParentDirectory() { $pathArray = explode(PATH_SEPARATOR, ini_get('include_path')); foreach ($pathArray as $path) { if (file_exists($path . DIRECTORY_SEPARATOR . 'PHPUnit/')) { return $path; } } return null; }
Вы можете просто установить его с помощью композитора и добавить его как обычный исполняемый файл (ant / phing / native task), но вы потеряете все блестящие функции, предлагаемые PHPStorm, такие как индикатор выполнения, переход к неудачному тесту и поддержка покрытия кода.
Итак, из кода, который вы можете сказать, вам нужно добавить папку с именем PHPUnit
в одно из мест вашего пути include. Добавление поставщика может помочь в этом, но имейте в виду, что при этом нужно соответствовать случаю .
До тех пор, пока PHPStorm не будет поддерживать PHPUnit от композитора или phar, я не думаю, что вы улучшите интеграцию ( http://youtrack.jetbrains.com/issue/WI-13429
), используя его из груши, но взломать ваш путь включения может работать ,
Парни PHPStorm внесли некоторые обновления на бегун для 3.7 и обычно вполне реагируют на изменения в PHPUnit 🙂
Я обнаружил, что если у меня есть все мои в каталоге «Тест» и набор тестов, определенный в файле конфигурации «Test / phpunit.xml»; Я могу просто настроить «Запустить конфигурацию» следующим образом:
Диалоговое окно Phpstorm Run | Конфигурация