Использовать удаленное покрытие PHPUnit в PhpStorm
Я работаю в следующей настройке:
Работает виртуальная машина разработки, где я могу получить доступ к базе кода и использовать ее в качестве местоположения проекта в PhpStorm. Все (nginx, база данных, phpunit, ...) работает на этой виртуальной машине. У меня есть сетевой диск, подключенный к этой виртуальной машине, но я не могу получить доступ к каталогу проверки.
Я настроил PHPUnit для создания cover.xml, к которому я могу получить доступ с моего хоста.
Теперь я хочу использовать эти данные, чтобы показать мне покрытие кода в PHPStorm, но похоже, что для этого нет возможности использовать внешне сгенерированный файл покрытия. Я запускаю модульные тесты удаленно на ВМ, не используя функции IDE (потому что я не могу найти способ запустить тесты удаленно).
Есть какой-нибудь твик или вариант, который я не узнал?
2 ответа
Да, вы можете использовать любой coverage.xml
внутри IDE, если он имеет правильные имена файлов (даже если он был сгенерирован где-то еще). Но это должно быть сделано вручную и не очень удобно использовать на частой основе.
Идея заключается в следующем:
- Запустите ваши тесты PHPUnit на удаленной машине и сгенерируйте
coverage.xml
, - Обработайте его, используя любой подходящий инструмент для замены удаленных путей на локальный путь (например, некоторую пользовательскую цель Phing; простой поиск + замена в вашем текстовом редакторе или любой другой). Это, конечно, если удаленные пути отличаются от локальных. В противном случае просто пропустите это.
- Скажите IDE, чтобы использовать этот файл для отображения подробностей покрытия через Инструменты | Показать данные покрытия кода - прикрепить туда нужный файл.
Пожалуйста, обратите внимание: скорее всего (не использовал это сам в течение длительного времени, поэтому, возможно, он был изменен с тех пор), вам придется удалять, а затем снова добавлять такой файл каждый раз, когда вы получаете новый cover.xml (это самое большое раздражение) - IDE кэширует содержимое такого файла. Проверьте этот билет для некоторых деталей.
Обновление: По крайней мере, начиная с PHPStorm 2016.1 или, возможно, ранее (например, Версия 9 или 10) вы можете автоматически получать покрытие кода PHPUnit, используя PHPUnit поверх SSH Server. Вы должны сначала добавить Remote PHP Interpreter, используя шаги в официальном руководстве. Затем просто выберите его в качестве интерпретатора проекта PHP по умолчанию. Когда вы запускаете тест, вы можете нажать "Запустить" MyTest "с покрытием", и он автоматически скопирует и загрузит файл покрытия через SSH.