Пример покрытия кода Maven + Emma

Emma - это бесплатный инструмент для покрытия кода Java. В этом руководстве мы покажем вам, как использовать Maven для создания отчета о покрытии кода Emma для вашего проекта, а также как интегрировать отчет Emma в сайт проекта Maven.
1. Создать отчет о покрытии Emma Code
Ничего не делайте, просто введите следующую команду Mavenmvn emma:emma, чтобы запуститьmaven-emma-plugin.
c:\project> mvn emma:emma
//...
Tests run: 16, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.53 sec
EMMA: locking coverage output file [C:\example_projects\TestNG\coverage.ec] ...
EMMA: runtime coverage data merged into [C:\example_projects\TestNG\coverage.ec] {in 78 ms}
Results :
Tests run: 16, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] <<< emma-maven-plugin:1.0-alpha-3:emma (default-cli) @ TestNG <<<
[INFO]
[INFO] --- emma-maven-plugin:1.0-alpha-3:emma (default-cli) @ TestNG ---
processing input files ...
2 file(s) read and merged in 1 ms
writing [xml] report to [C:\example_projects\TestNG\target\site\emma\coverage.xml] ...
writing [html] report to [C:\example_projects\TestNG\target\site\emma\index.html] ...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.004s
[INFO] Finished at: Fri Jan 10 23:32:05 SGT 2014
[INFO] Final Memory: 25M/307M
[INFO] ------------------------------------------------------------------------
C:\example_projects\TestNG>
Maven скомпилирует, запустит модульный тест и плагин Emma для создания отчета о покрытии кода в${project}/target/site/index.html.
Рисунок: Пример отчета о покрытии кода Emma,${project}/target/site/index.html.

Рис.: Подробная страница.

2. Сайт Maven + отчет Эммы
Чтобы интегрировать отчеты Emma в сайт проекта Maven, добавьте следующее в раздел отчетов.
pom.xml
//...// integrate maven emma plugin to project site org.apache.maven.plugins maven-project-info-reports-plugin 2.7 false org.codehaus.mojo emma-maven-plugin 1.0-alpha-3 true
Создание сайта проекта Maven
c:\project> mvn site
//...
Tests run: 16, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.45 sec
EMMA: locking coverage output file [C:\example_projects\TestNG\coverage.ec] ...
EMMA: runtime coverage data merged into [C:\example_projects\TestNG\coverage.ec] {in 38 ms}
Results :
Tests run: 16, Failures: 0, Errors: 0, Skipped: 0
//... Generating other reports
[INFO] Generating "Project Summary" report
[INFO] Generating "Dependencies" report
[INFO] Generating "EMMA Test Coverage" report
processing input files ...
2 file(s) read and merged in 2 ms
writing [xml] report to [C:\example_projects\TestNG\target\site\emma\coverage.xml] ...
writing [html] report to [C:\example_projects\TestNG\target\site\emma\index.html] ...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8.488s
[INFO] Finished at: Fri Jan 10 23:43:58 SGT 2014
[INFO] Final Memory: 40M/1024M
[INFO] ------------------------------------------------------------------------
Выход - Сайт проекта,${project}/site/index.html

3. Интеграция в Maven Build
Вы также можете включить «emma-maven-plugin» в раздел сборки.
pom.xml
//...org.codehaus.mojo emma-maven-plugin 1.0-alpha-3 true process-classes instrument
Остерегайтесь ошибкиclass X appears to be instrumented already.