Подтвердить что ты не робот

Бегущие юниты и кобертура с maven

В нашем проекте мы запускаем как junits, так и cobertura, используя maven. Проблема, с которой я сталкиваюсь, заключается в том, что

  • тестовые примеры junit запускаются дважды, один раз перед процессом создания банки, а затем снова для создания отчетов о покрытии cobertura. При запуске cobertura и junits с ant мы запускаем юниты только один раз, так как кобертура работает вместе с юнитами. Есть ли способ сконфигурировать вышеуказанный случай с maven. Я знаю, что мы можем использовать свойство maven.test.skip для пропуска юнитов. Но когда я это делаю, я не могу видеть отчеты junit xml & html.
  • Кроме того, в maven, как настроить junits для запуска в пакетном или параллельном?

Благодарю вас!

4b9b3361

Ответ 1

Пока я больше не могу найти точную страницу, я недавно прочитал дискуссию о том, почему запуск тестов дважды считается хорошей идеей. Приведенные ключевые вопросы касались влияния изменения кода байта Cobertura на точность ваших тестов. В некоторых случаях время выполнения кода может быть важным, изменение байтового кода может привести к провалу тестов, которые не выполняются в JUnit при запуске только в Cobertura и наоборот. По этой причине было рекомендовано, чтобы тесты выполнялись дважды. Большинство приведенных примеров были связаны с многопоточным поведением, но я полагаю, что могут быть другие случаи, когда изменение байтового кода может вызвать проблемы в ваших тестах. Испытания, выполняемые в обоих направлениях, дают вам базовые результаты, а также уменьшают шансы отправить вас на охоту на диких гусей, если Cobertura фактически изменяет успех теста.

Ответ 2

Попробуйте добавить cobertura в качестве ссылки на область компиляции. И разместите соответствующие части вашего pom.

Ответ 3

Это происходит потому, что для выполнения отчета требуется выполнение теста, чтобы он мог создавать отчеты. Если на плагине сайта была цель "только для сайта", которая не имела аннотации @requiresDependencyResolution test, она могла быть привязана к фазе проекта prepare-package, и ваши отчеты будут генерироваться без двух тестов.

К сожалению, похоже, в настоящее время нет такой цели (см. мой question по этому вопросу). См. Мой ответ на вопрос для получения подробных сведений об обходном пути.