бегущие джуниты и кобертура с мавеном - PullRequest
23 голосов
/ 09 апреля 2009

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

  1. Тестовые случаи junit выполняются дважды: один раз перед процессом создания jar, а затем еще раз для генерации отчетов покрытия cobertura. Когда мы запускаем cobertura и junits с муравьем, мы запускаем junits только один раз, поскольку cobertura работает вместе с junits. Есть ли способ настроить вышеупомянутый случай с Maven. Я знаю, что мы можем использовать свойство "maven.test.skip", чтобы пропустить джунты. Но когда я делаю это, я не могу видеть отчеты о файлах junit xml & html.
  2. Кроме того, в maven, как настроить junits для запуска в пакетном или параллельном режиме?

спасибо!

Ответы [ 3 ]

23 голосов
/ 15 мая 2009

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

1 голос
/ 31 июля 2009

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

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

1 голос
/ 13 апреля 2009

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

...