Exemple de couverture de code Maven Emma

Exemple de couverture de code Maven + Emma

emma-logo

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.

emma-code-coverage-report-1

Figure: Page de détail.

emma-code-coverage-report-2

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

  //...
  
    
    
      
    org.apache.maven.plugins
    maven-project-info-reports-plugin
    2.7

    
          false
    
      

      // integrate maven emma plugin to project site
      
    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

maven-site-emma

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.