JaCoCo est un outil très connu dans le monde Java qui permet de générer des rapports de code coverage au format xml et html.
L’intérêt sera souvent de donner le rapport au format xml à d’autres outils (Codecov ou Sonar par exemple) pour suivre le code coverage de votre projet.
Nous allons voir pas à pas comment configurer Jacoco pour qu’il génère un rapport prenant en compte les tests unitaires et les tests d’intégration sur un même rapport.
Générer un fichier d’exécution pour les tests unitaires
Les fichiers .exec sont des fichiers générés par JaCoCo comprenant les données d’exécution. C’est sur la base de ces fichiers que les rapports sont générés.
Ici on dit simplement à Jacoco ‘’prépare une propriété qui va référencer le runtime JaCoCo qui sera passé lors de l’exécution des TU et génère un rapport après l’exécution des tests unitaires.
Générer un fichier d’exécution pour les tests d’intégration
Ce sera exactement comme pour les tests unitaires. On va commander l’exécution de:
L’idée va être de prendre les deux fichiers .exec générés par JaCoCo lors des étapes précédentes et de les fusionner dans un seul fichier.
Une fois fait, il suffit de dire à JaCoCo de se baser sur le fichier .exec final pour générer un rapport comprenant le coverage des tests unitaires et de ceux des tests d’intégration.
Astuce: si vous voulez que vos tests Cucumber soient pris en compte pour le code coverage généré par JaCoCo, il suffit de suffixer le nom de votre Runner par IT afin qu’ils soient joués au mvn verify.
Introduction
Sur un des projets sur lesquels j’interviens, diverses personnes ont contribué au cours des années parfois sans passation entre les équipes.
En regardant les commits, on voit qu’une équipe a mis un ORM, une autre l’a enlevé, une autre a mis un autre ORM etc..
Le coût en temps pour l’entreprise est considérable car ce n’est pas une opération a...
Introduction
Vous avez diagnostiqué une fuite mémoire et vous voulez corriger le problème.
Si vous utilisez IntelliJ, vous avez à disposition dans votre IDE un outil puissant qui vous permettra de diagnostiquer la source du problème et vérifier vot...
Introduction
Dans nos applications, il y a souvent des objets qui dépendent les uns des autres (un Service avec des Repository par exemple). Si on devait satisfaire ces dépendances “à la main”, on devrait les instancier, vérifier que ça n’ait pas ...
Introduction
Chiffrer et déchiffrer des informations est un besoin qu’on rencontre souvent dans nos projets et Java donne nativement une palette d’outils pour y arriver. On va voir dans cet article comment réaliser ces deux opérations via un cas prati...