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.
Votre changelog reprend les fonctionnalités que vous avez réalisé entre deux versions, ça tombe bien, votre historique git contient ces informations :) On va voir comment les extraire de git pour générer automatiquement un changelog exhaustif et fiable.
Le principe
Pour faciliter la maintenance de votre projet, il est d’usage d’avoir des commits parlants afin que tous les d...
Photo by Yancy Min on Unsplash
Contexte
Je suis développeur au quotidien et j'aime développer en dehors du travail également.
Parfois, il peut m’arriver de faire un kata entre midi et deux par exemple. J'aime bien du coup garder une trace de mon exerc...
On va prendre un cas concret: j’ai fait un commit et en relisant ma merge request, je me rend compte que certains fichiers ne devraient pas y être:
Dans mon cas c’est le fichier src/test/java/com/globaldashboard/unit/dependencies/domain/PomUrlTest.java
...
Dans une application Spring, sauf exceptions, les Beans sont proxifiés. En d’autres mots, on n'interagit pas directement avec eux et ce mécanisme est à la base de l’AOP.
Beaucoup de mécanismes s'appuient sur l’AOP (les Transactions par exemple) et conn...