Структура Java проектов с использованием Maven предполагает некоторое колличество Unit-тестов.
Но одних лишь тестов мало, хочется иметь более полную информацию насколько наши тесты охватывают код.
Для этих целей есть ряд библиотек из которых я использую Emma (офф. сайт).
Первым делом добавим Emma инструментацию на наши классы после фазы compile (фаза process-classes)
Как видно из примера, emma-maven-plugin поддерживает фильтрацию. Подробнее о параметрах плагина
По умолчанию, инструментированные классы создадутся в директории ${project.build.directory}/generated-classes/emma/classes.
Эту директорию следует отметить как classesDirectory для maven-surefire-plugin:
И последнее, добавим создание репортa на фазе test
Как результат, получим директорию target/site/emma с HTML, TXT и XML репортами.
Устанавливаем Emma плагин (http://wiki.hudson-ci.org//display/HUDSON/Emma+Plugin) и в конфигурации проекта отмечаем Record Emma coverage report чекбокс.
Этот плагин использует coverage.xml созданный emma4it плагином.
В результате имеем графики, таблицы процента покрытий и т.д.
Пример графика (плохого):

Но одних лишь тестов мало, хочется иметь более полную информацию насколько наши тесты охватывают код.
Для этих целей есть ряд библиотек из которых я использую Emma (офф. сайт).
Конфигурация pom.xml
Первым делом добавим Emma инструментацию на наши классы после фазы compile (фаза process-classes)
<plugin>
<groupId>org.sonatype.maven.plugin</groupId>
<artifactId>emma-maven-plugin</artifactId>
<version>1.2</version>
<configuration>
<filters>
<filter>+org.*</filter>
<filter>-org.some.package.*</filter>
</filters>
</configuration>
<executions>
<execution>
<phase>process-classes</phase>
<goals>
<goal>instrument</goal>
</goals>
</execution>
</executions>
</plugin>
Как видно из примера, emma-maven-plugin поддерживает фильтрацию. Подробнее о параметрах плагина
По умолчанию, инструментированные классы создадутся в директории ${project.build.directory}/generated-classes/emma/classes.
Эту директорию следует отметить как classesDirectory для maven-surefire-plugin:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<classesDirectory>${project.build.directory}/generated-classes/emma/classes</classesDirectory>
</configuration>
</plugin>
И последнее, добавим создание репортa на фазе test
<plugin>
<groupId>org.sonatype.maven.plugin</groupId>
<artifactId>emma4it-maven-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<id>report</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
<configuration>
<sourceSets>
<sourceSet>
<directory>${project.build.sourceDirectory}</directory>
</sourceSet>
</sourceSets>
</configuration>
</execution>
</executions>
</plugin>
Как результат, получим директорию target/site/emma с HTML, TXT и XML репортами.
Hudson
Устанавливаем Emma плагин (http://wiki.hudson-ci.org//display/HUDSON/Emma+Plugin) и в конфигурации проекта отмечаем Record Emma coverage report чекбокс.
Этот плагин использует coverage.xml созданный emma4it плагином.
В результате имеем графики, таблицы процента покрытий и т.д.
Пример графика (плохого):

