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
Ctrl F5
Generer le site
Dans target, j’ai site, et fichier index.html, je l’ouvre:
D’abord faire les tsts
Voilà les rapports:
Une question? Posez-la ici
On voit les plugins installés dans le projet, on peut les presenter à l’équipe:
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
Une question? Posez-la ici
On clique dessus
/workspace/calculette-junit/target/site/cobertura/index.html
Et les rapports sont générés:
En rouge, les tests ne sont pas passes:
Ici la classes CalculateurRationnel est passée à 100%:
Rationnel est passé à 52%:
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/
Des questions?