Проблема покрытия кода Cobertura - PullRequest
0 голосов
/ 20 ноября 2011

Мы используем гидролокатор в нашем проекте. Сонар по умолчанию использует cobertura для определения покрытия кода. Мое приложение разделено на несколько проектов, каждый из которых имеет свои файлы pom.xml. Итак, насколько я понимаю, статистика cobertura также будет рассчитываться для каждого проекта.

Мой pom.xml имеет следующую конфигурацию

<reporting> 
<plugins> 
<plugin> 
<groupId>org.codehaus.mojo</groupId> 
<artifactId>cobertura-maven-plugin</artifactId> 
<version>2.4</version> 
</plugin> 
</plugins>
</reporting>

Проблема, с которой я сталкиваюсь, заключается в том, что у меня есть тестовый класс JUnit в проекте A, который вызывает и тестирует определенные классы в проекте B. Однако, когда я смотрю отчет cobertura для проекта B, он показывает 0% покрытия линии. Отчет о покрытии для проекта A в любом случае не будет содержать подробностей о проекте B. Требуется ли какая-либо конфигурация для получения правильного покрытия кода?

Я подозревал, что это может быть связано с неправильным слиянием деталей инструмента cobertura, поэтому я попытался добавить следующее в файлы pom.xml проекта A & B, но результаты все равно не изменились.

<cobertura-merge> 
<fileset dir="${basedir}"> 
<include name="**/cobertura.ser" /> 
</fileset> 
</cobertura-merge> 

В любом случае, я думаю, что Сонар должен быть достаточно умен, чтобы объединить результаты. Какие-либо конкретные изменения конфигурации, которые мне, возможно, придется внести, чтобы получить правильные цифры покрытия кода? Это важно для нас, потому что мы не хотим отставать от других команд, которые гораздо лучше охватывают код. Мы знаем, что большая часть кода была рассмотрена с помощью классов модульного и интеграционного тестирования, но у нас нет цифр, чтобы доказать это!

Кто-нибудь сталкивался с подобной проблемой в прошлом?

Спасибо, Miten

...