Exemple de couverture de code Maven + Emma
Emma est un outil gratuit de couverture de code Java. Dans ce didacticiel, nous allons vous montrer comment utiliser Maven pour générer le rapport de couverture de code Emma pour votre projet, et également comment intégrer le rapport Emma dans le site du projet Maven.
1. Générer un rapport de couverture de code Emma
Ne faites rien, tapez simplement la commande Maven suivantemvn emma:emma
pour exécuter lesmaven-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 compilera, exécutera un test unitaire et le plugin Emma pour générer le rapport de couverture de code à${project}/target/site/index.html
.
Figure: Exemple de rapport de couverture de code Emma,${project}/target/site/index.html
.
Figure: Page de détail.
2. Site Maven + Rapport Emma
Pour intégrer les rapports Emma dans le site du projet Maven, ajoutez ce qui suit à la section des rapports.
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
Création du site du projet 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] ------------------------------------------------------------------------
Sortie - Site du projet,${project}/site/index.html
3. Intégration dans la construction Maven
Vous pouvez également inclure le «plugin emma-maven» dans la section de construction.
pom.xml
//...org.codehaus.mojo emma-maven-plugin 1.0-alpha-3 true process-classes instrument
Méfiez-vous simplement de l'erreurclass X appears to be instrumented already.