Новый PhpStorm предоставил возможность удаленного запуска PHPUnit, но настройка не слишком тривиальна. Однако, это того стоит, если вы не пользуетесь локальным веб-сервером для отладки.
Для примера возьмем сервер на Debian и проект на Symfony2. На самом деле подойдет любой сервер, но у меня только Debian под рукой.
Для начала вам нужно настроить Deployment в проекте через SFTP. Это важный момент, т.к. иначе тестирование работать почему-то не будет (вероятно это баг с путем к файлам). Подробности расписывать не буду, т.к. есть отдельная статья про настройку FTP/SFTP в PhpStorm.
Это новая возможность PhpStorm 8, теперь PHP можно запускать не только локально, но и по SSH. Заходим в настройки (Ctrl + Alt + S) -> PHP. Возле селекта Interpreter нажимаем на многоточие и в появившемся окне жмем зеленый плюсик и выбиваем Remote. Во вновь появившемся окне нужно отметить Deployment configuration и выбрать ваше SFTP соединение. Так же нужно указать путь к PHP, если стандартный вам не подходит.
Нажимаем ОК. PhpStorm сам проверит подключение, проверит версию PHP, а так же загрузит некоторые свои вспомогательные скрипты. Если у вас установлен отладчик вроде XDebug, он так же будет автоматически определен.
Я для себя, в Configuration options дополнительно указываю memory_limit = -1, чтобы снять ограничения памяти на командную строку. Этот момент делайте только если понимаете, что вы делаете.
В итоге, у меня получилось так:
Скорее всего, если вы читаете эту статью, PHPUnit уже установлен и этот шаг можно пропустить. Единственный момент - исполняемый файл должен быть .phar, иначе ничего не запустится. Для остальных, читайте дальше.
Я выбрал наиболее простой способ установки - скачивание PHAR архива и установка его в /usr/local/bin. Собственно, заходим в консоль и делаем так:
$ wget https://phar.phpunit.de/phpunit.phar
$ chmod +x phpunit.phar
$ sudo mv phpunit.phar /usr/local/bin/phpunit
$ sudo cp /usr/local/bin/phpunit /usr/local/bin/phpunit.phar
Последняя строчка нужна исключительно для PhpStorm. Обратите внимание, что символьная ссылка не прокатит, проверено.
Идем в настройки проекта -> PHP -> PHPUnit и жмем зеленый крестик, By remote interpreter. Выбираем наш интерпретатор.
В настройках ставим отметку у Path to phpunit.phar и в появившееся поле вводим путь к нашему файлу: /usr/local/bin/phpunit.phar
Поскольку у меня пример с Symfony2, то ставим галочку на Default configuration file и выбираем в нашем проекте файл app/phpunit.xml.dist
Получется примерно такое окно с настройками:
В случае с Symfony, щелкаем правой кнопкой на папке src и выбираем Run -> src. Если вы все сделали правильно, то запустятся тесты из ваших бандлов. В осталных случаях тесты можно запускать щалкая прямо по файлам с тестами.