Jacoco est utilisé pour mesurer la couverture de code de l'application. Dans ce tutoriel, nous allons comprendre comment configurer Jacoco dans maven et comment utiliser Jacoco pour voir le rapport de couverture du code.
Technologies utilisées:
Éclipse de Mars
Maven 3.3.9
Java 8
1. Eclipse Créer un projet Java Maven
1.1 In Eclipse create a Maven project File->New->Project->Maven Project, Select create a simple project and click on next
1.2 Enter groupId & artifactId as shown in below screen and click on finish.
2. Structure du projet
Le projet comprend les éléments suivants
Exemple de classe d'opérations arithmétiques
Exemple de classe de test JUnit d'opérations arithmétiques
pom.xml avec les dépendances Junit et Jacoco
3. pom.xml
Configurez Junit et Jacoco comme indiqué danspom.xml
Dans cette classe, la méthode «add» est créée qui accepte deux paramètres entiers et renvoie la somme.
ArithmeticOperations.java
package math.operation;
public class ArithmeticOperations {
public Integer add(Integer a, Integer b)
{
return a+b;
}
}
5. Exemple de classe de test Junit d'opérations arithmétiques
Testcase est créé pour la méthode «add».
ArithmeticOperationsTest.java
package math.operation;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class ArithmeticOperationsTest {
@Test
public void testAdd()
{
ArithmeticOperations operations = new ArithmeticOperations();
Integer actual = operations.add(2, 6);
Integer expected = 8;
assertEquals(expected, actual);
}
}
6. Exécuter l'application
Cliquez avec le bouton droit de la souris sur Projet → Exécuter en tant que → Test Maven. Le rapport de sortie Jacoco sera généré dans le répertoire cible sous le dossier jacoco-ut
7. Sortie
7.1 To see the output go to target directory and open index.html from jacoco-ut folder in browser. Le rapport global pour la classeArithmeticOperations est présenté ci-dessous
7.2 Clicking on each method in above figure gives detailed report. Ici, il montre une ligne de couleur verte indiquant quelle ligne est couverte par le test unitaire.