3

Я работаю в следующей настройке:

Работает виртуальная машина разработки, где я могу получить доступ к базе кода и использовать ее в качестве местоположения проекта в PhpStorm. Все (nginx, база данных, phpunit, ...) работает на этой виртуальной машине. У меня есть сетевой диск, подключенный к этой виртуальной машине, но я не могу получить доступ к каталогу проверки.

Я настроил PHPUnit для создания cover.xml, к которому я могу получить доступ с моего хоста.

Теперь я хочу использовать эти данные, чтобы показать мне покрытие кода в PHPStorm, но похоже, что для этого нет никакого способа использовать сгенерированный извне файл покрытия. Я запускаю модульные тесты удаленно на ВМ, не используя функции IDE (потому что я не могу найти способ запустить тесты удаленно).

Есть какой-нибудь твик или вариант, который я не узнал?

2 ответа2

4

Да, вы можете использовать любой файл coverage.xml внутри IDE, если он имеет правильные имена файлов (даже если он был сгенерирован где-то еще). Но это должно быть сделано вручную и не очень удобно использовать на частой основе.

Идея заключается в следующем:

  1. Запустите ваши тесты PHPUnit на удаленной машине и сгенерируйте coverage.xml .
  2. Обработайте его, используя любой подходящий инструмент для замены удаленных путей на локальный путь (например, некоторую пользовательскую цель Phing; простой поиск + замена в вашем текстовом редакторе или любой другой). Это, конечно, если удаленные пути отличаются от локальных. В противном случае просто пропустите это.
  3. Скажите IDE, чтобы использовать этот файл для отображения подробностей покрытия через Инструменты | Показать данные покрытия кода - прикрепить туда нужный файл.
    Пожалуйста, обратите внимание: скорее всего (не использовал это сам в течение долгого времени, поэтому, возможно, он был изменен с тех пор), вам придется удалять, а затем снова добавлять такой файл каждый раз, когда вы получаете новый cover.xml (это самое большое раздражение) - IDE кеширует содержимое такого файла. Проверьте этот билет для некоторых деталей .
1

Обновление: По крайней мере, начиная с PHPStorm 2016.1 или, возможно, ранее (например, Версия 9 или 10) вы можете автоматически получать покрытие кода PHPUnit, используя PHPUnit поверх SSH Server. Сначала вы должны добавить Remote PHP Interpreter, используя шаги в официальном руководстве. Затем просто выберите его в качестве интерпретатора проекта PHP по умолчанию. Когда вы запускаете тест, вы можете нажать «Запустить« MyTest »с покрытием», и он автоматически копирует и загружает файл покрытия по SSH.

Источник: https://confluence.jetbrains.com/display/PhpStorm/Running+PHPUnit+tests+over+SSH+on+a+remote+server+with+PhpStorm

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .