Как избежать двойной компиляции и тестирования с помощью cobertura: check? - PullRequest
4 голосов
/ 06 августа 2010

Я использую maven-cobertura-plugin для расчета покрытия кода в моем проекте.Как я понимаю, этот плагин запускает новый / разветвленный цикл сборки, чтобы скомпилировать и протестировать кодовую базу.Когда это будет сделано, плагин рассчитывает покрытие кода.Как я понимаю, это единственный подход, который может использовать плагин, и он мне подходит.

Проблема в том, что перед плагином cobertura моя база кода уже скомпилирована и протестирована.Таким образом, я испытываю дублированную компиляцию и тестирование.Можно ли избежать компиляции и тестирования до cobertura?Или, может быть, есть какой-то другой обходной путь?

Ответы [ 3 ]

1 голос
/ 06 августа 2010

Можно ли избежать компиляции и тестирования перед cobertura?Или, может быть, есть какой-то другой обходной путь?

Есть несколько проблем по этому поводу (см. MCOBERTURA-83 , MCOBERTURA-76 ), но AFAIK, естьнет идеального обходного пути (из-за способа построения жизненного цикла - вещи могут быть улучшены в Maven 3).

Единственное, что мне известно (работает с серверами CI), это запустить:

mvn clean install -Dmaven.test.skip=true

, а затем

mvn cobertura:check

Вместо привязки cobertura:check в жизненном цикле сборки.

Обратите внимание, что компиляция дважды не должна быть проблемой, так как все классы должны быть обновлены.

0 голосов
/ 20 мая 2014

Единственный способ, которым я смог обойти эту проблему, - это использовать байт-код как часть моей сборки (привязав цель cobertura:instrument к фазе verify, а также связать выполнение default-test с maven-surefire-plugin в фазу verify, чтобы она не выполнялась как часть фазы test при каждом выполнении цели cobertura.

0 голосов
/ 06 августа 2010

Насколько я знаю, cobertura должен выполнять переплетение байт-кода в вашем коде, чтобы иметь возможность работать.

...