Структура 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 плагином.
В результате имеем графики, таблицы процента покрытий и т.д.
Пример графика (плохого):