Objectif
Ce TP est destiné à vérifier le fonctionnement de la chaîne automatique de compilation et d'exécution d'un programme Java :
- compilation (javac)
- tests unitaires (junit)
- test de couverture (jacoco)
La mise en oeuvre est effectuée par l'outil de construction de projet Maven.
Préambule
Vérifier que le programme Maven est installé :
$ mvn -version
Maven home: /usr/local/Cellar/maven/3.8.7/libexec
Java version: 19.0.1, vendor: Homebrew, runtime: /usr/local/Cellar/openjdk/19.0.1/libexec/openjdk.jdk/Contents/Home
Default locale: fr_FR, platform encoding: UTF-8
OS name: "mac os x", version: "12.6.2", arch: "x86_64", family: "mac"
Si vous utilisez l'IDE VS Code vous pouvez installer les extensions suivantes :
- Java Extension Pack : https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack
- Coverage Gutters : https://marketplace.visualstudio.com/items?itemName=ryanluker.vscode-coverage-gutters
- SonarLint : https://marketplace.visualstudio.com/items?itemName=SonarSource.sonarlint-vscode
Création de votre branche de travail
Clonez le projet sur votre ordinateur : git clone https://gitlab.univ-lorraine.fr/pierron9/sphere
Créez une branche pour travailler. Choisissez comme nom de branche votre nom de login sur https://gitlab.univ-lorraine.fr/
cd sphere
git branch <your branch name>
git switch <your branch name>
Testez que vous êtes au bon endroit : git status
Créez la branche sur le dépôt distant : git push --set-upstream origin <your branch name>
Vous devriez avoir cela dans le répertoire sphere
:
sphere
├── README.md
├── pom.xml
└── src
├── main
│ └── java
│ └── fr
│ └── nancy
│ └── iut
│ └── Sphere.java
└── test
└── java
└── fr
└── nancy
└── iut
└── SphereTest.java
Passage des tests
Passez le test, avec la commande mvn test
ou de puis votre IDE.
Corrigez le programme pour que le test passe.
Enregistrez votre travail et synchronisez le sur le dépôt.
Couverture de code
Vérifiez la couverture de code : mvn jacoco:prepare-agent install jacoco:report
Puis visualisez le résultat : open target/site/jacoco/index.html
Vous pouvez aussi voir le résultat dans l'IDE grâce à Covergae Gutters
, les marques vertes indiquent des lignes analysées, les marques rouges, les lignes non testées.
Travail supplémentaire
Ajoutez des tests pour arriver à 100% de couverture de code. Vous pouvez avoir besoin de la documentation de JUnit : https://junit.org/junit5/docs/5.7.2/user-guide/index.html
La bonne méthode est d'ajouter un test à la fois, de le faire passer puis committer
pour valider le travail.
Une fois la couverture à 100% obtenue, synchronisez votre travail avec le dépôt.