Ответ 1
Патрик Висма опубликовал решение на http://youtrack.jetbrains.com/issue/WI-13429:
Измените конфигурацию для phpunit.xml в PHPStorm и установите параметры интерпретатора следующим образом:
-d auto_prepend_file=/path/to/vendor/autoload.php
Сейчас я пытаюсь настроить 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
→ PHPUNIT
Test Scope
выберите Defined in configuration file
Interpreter options
пустPHPUNIT
(выше Defaults
) и удалите любую запись под ним (так что в следующий раз, когда вы проверите конкретный файл и т.д., он настроит новый, но использует новый по умолчанию).
Я бы предположил, что PhpStorm полагается на поиск PHPUnit в include_path самого php.ini, а не на ваш проект.
Вы можете попробовать добавить локальный каталог поставщика /bin проекта в php.ini include_path, но в конечном итоге это похоже на то, что 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 имеет пользовательский бегун PHPUnit script (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
в одно из мест вашего пути включения. Добавление поставщика может помочь там, но имейте в виду , когда он должен соответствовать аргументу.
Пока PHPStorm не поддерживает PHPUnit от композитора или phar, я не думаю, что вы улучшите интеграцию ( http://youtrack.jetbrains.com/issue/WI-13429
), используя его из груши, но хакерский путь включения может работать.
Ребята из PHPStorm внесли некоторые обновления на бегун для 3.7 и обычно вполне реагируют на изменения в PHPUnit:)
Я обнаружил, что если у меня есть все мои в каталоге "Test" и набор тестов, определенный в файле конфигурации "Test/phpunit.xml"; Я могу просто настроить "Запустить конфигурацию" следующим образом:
Phpstorm Run | Диалоговое окно конфигурации