Formation Java; TP: construire un rapport de test unitaire sous Eclipse Maven Junit et le presenter avec Cobertura, et le plugin PMD

 

Je reprends mon projet de calculatrice, puisque les tests fonctionnent bien:

 

-------------------------------------------------------

T E S T S

-------------------------------------------------------

Running exercice2math.CalculateurRationnelTest

Nombre de Test: 2

Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.031 sec - in exercice2math.CalculateurRationnelTest

Running exercice2math.CalculateurRationnelParameterizedTest

Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec - in exercice2math.CalculateurRationnelParameterizedTest

Results :

Tests run: 6, Failures: 0, Errors: 0, Skipped: 0

 

Ou ouvre le Pom.xml

On met le plugin cobertura

Recherché cobertura -maven-plugin

https://mvnrepository.com/artifact/net.sourceforge.cobertura/cobertura/2.1.1

http://www.mojohaus.org/maven-native/maven-native-api/project-reports.html

http://www.mojohaus.org/maven-native/maven-native-api/project-reports.html

http://www.mojohaus.org/cobertura-maven-plugin/

USAGE

Je rajoute le plugin

   <plugin>
       <groupId>org.codehaus.mojo</groupId>
       <artifactId>cobertura-maven-plugin</artifactId>
       <version>2.7</version>
     </plugin>

Complet:

     <plugin>
       <groupId>org.codehaus.mojo</groupId>
       <artifactId>cobertura-maven-plugin</artifactId>
       <version>2.7</version>
       <configuration>
         <check>
           <branchRate>85</branchRate>
           <lineRate>85</lineRate>
           <haltOnFailure>true</haltOnFailure>
           <totalBranchRate>85</totalBranchRate>
           <totalLineRate>85</totalLineRate>
           <packageLineRate>85</packageLineRate>
           <packageBranchRate>85</packageBranchRate>
           <regexes>
             <regex>
               <pattern>com.example.reallyimportant.*</pattern>
               <branchRate>90</branchRate>
               <lineRate>80</lineRate>
             </regex>
              <regex>
               <pattern>com.example.boringcode.*</pattern>
               <branchRate>40</branchRate>
               <lineRate>30</lineRate>
             </regex>
           </regexes>
         </check>
       </configuration>
       <executions>
         <execution>
           <goals>
             <goal>clean</goal>
             <goal>check</goal>
           </goals>
         </execution>
       </executions>
     </plugin>

 

Le report est déjà dans l’effective POM

 

                 <groupId>org.apache.maven.plugins</groupId>

                 <artifactId>maven-project-info-reports-plugin</artifactId>

               </reportPlugin>

 

C’est pas clean que je veux c’est test

 

Je rajoute dans le plugin:

       <goals>
             <goal>clean</goal>
             <goal>check</goal>
           </goals>

 

Zone execution

Je vais creer une nouvelle commande

Bouton droit

Runas configurations

Maven build/New

“generer le site de exercice2-ilo”

“generer le site pour presenter les tests”

Workspace

Goals site

Apply

 

Une question? Posez-la ici

run configurations

 

Run

Ctrl F5

Generer le site

Dans target, j’ai site, et fichier index.html, je l’ouvre:

 

index html

 

D’abord faire les tsts

Voilà les rapports:

 

tests calculette

Une question? Posez-la ici

 

On voit les plugins installés dans le projet, on peut les presenter à l’équipe:

 

project build plugins

 

Je veux le code qui m’affiche le resultat des tests de surefire, mais au lieu de les avoir en texte, je les veux en joli, en html css etc. pour les publier

Dans le pom.xml enlever le plugin dans build et le mettre dans la section “reporting”

Comme ceci

http://www.mojohaus.org/cobertura-maven-plugin/usage.html

<project>
 <reporting>
   <plugins>
     <plugin>
       <groupId>org.codehaus.mojo</groupId>
       <artifactId>cobertura-maven-plugin</artifactId>
       <version>2.7</version>
       <reportSets>
         <reportSet>
           <reports>
             <report>cobertura</report>
           </reports>
         </reportSet>
       </reportSets>
     </plugin>
   </plugins>
 </reporting>
</project>

 

Le cobertura test coverage apparait

 

cobertura test coverage

 

Une question? Posez-la ici

 

On clique dessus

 

/workspace/calculette-junit/target/site/cobertura/index.html

Et les rapports sont générés:

 

rapport cobertura

 

En rouge, les tests ne sont pas passes:

Ici la classes CalculateurRationnel est passée à 100%:

 

resultat test classe CalculateurRationnel

 

Rationnel est passé à 52%:

 

resultat test rationnel

 

Plugin PMD

“Qualifier le code”, avec l’outil PMD, plugin, pour verifier si le code respecte les conventions de nommage dans notre projet.

http://pmd.sourceforge.net/eclipse/

 

 Une question? Posez-la ici

 

Des questions?