Intégrez CodeCov dans votre projets Github

Pragmatic Nerdz
Oct 3, 2023 - 3 Minutes

La couverture de test est une métrique importante en génie logiciel qui indique le pourcentage de code exécuté lorsque lors de l'automatisation des tests. Si vous n'avez aucun test automatisé, votre couverture est 0%. Cette métrique est un indicateur de confiance sur la stabilité de votre code et sa facilité de maintenance.

Dans cet article, on va vous montrer comment intégrer la plateforme CodeCov dans un exemple de projet Github afin d'obtenir les métriques de couverture de test.

Qu'est ce que CodeCov?

CodeCov est une plateforme qui offre des rapports détaillés sur la couverture de test de projets. Ces rapports permettent aux développeurs de comprendre les portions de leur codes qui sont testés, et ceux qui ne le sont pas.

Comment intégrer CodeCov?

Pour les besoins de cet article, on va utiliser en exemple de projet Github otp-heroku.

Pré-requis

Installez l'app CodeCov à votre compte Github et associez tous vos projets.

À partir de la console de CodeCov, copiez le jeton de votre projet.

Créez dans votre dépôt Github le secret CODECOV_TOKEN ayant pour valeur le jeton CodeCov.

Générez le rapport de couverture de test

Ajoutez les tests dans votre projet qui seront exécutés lors le processus de build. Pour le projet otp-heroku, on a créé des tests JUnit dans le répertoire src/test/kotlin.

Intégrez le plugin maven Jacoco dans le fichier pom.xml. Lors de la compilation du code avec la commande mvn install ou mvn package:

  1. Jacoco va instrumenter le code pour identifier les lignes de code exécutées par les tests automatisés.
  2. Jacoco va générer les rapports de couverture de test: target/jacoco.exec et target/site/jacoco/index.html.
  3. Jacoco va vérifier que le pourcentage de couverture répond aux attentes. On établi un pourcentage de couverture minimal pour le projet (Ex: 98%) pour s'assurer que les développeur n'omettent pas de rajouter les tests. Si ce pourcentage n'est pas atteint, la compilation va échouer.
Receive my Stories your e-mail inbox as soon as I publish them.
Subscribe to my Blog

Publiez le rapport de couverture

Publication des pull requests

Créez le fichier .github/workflows/pull_request.yml pour enclencher le processus de CI (Continuous Integration) pour chaque pull request créé, en:

  1. Téléchargeant du code.
  2. Configurant Java.
  3. Exécutant mvn install pour: compiler le code, exécuter les tests automatisés et générer les rapports de couverture de test.
  4. Publiant target/jacoco.exec dans CodeCov.

Une fois le processus de CI complété, le rapport CodeCov est ajouté à la pull request.

Vous pouvez aussi voir le statut des vérifications, qui incluent les vérifications faites par CodeCov

Publication de la branche master

Créez le fichier .github/workflows/master.yml pour enclencher le processus de CD (Continuous Deployment) lorsque les pull requests sont fusionnées à la branche master.  Inclure dans ce fichier l'action codecov/codecov-action pour télécharger le fichier target/jacoco.exec à CodeCov.

Afficher la couverture de test

CodeCov crée automatiquement un badge pour chaque projet qui indique le pourcentage de couverture de test. Vous pouvez inclure ce badge dans le fichier README.md avec le fragment code suivant:

[![codecov](https://codecov.io/gh/{user}/{project}/settings/badge.svg)](https://codecov.io/gh/{user}/{project})

Et le badge de couverture de test s'affichera et augmentera la confiance des développeurs en votre projet.


C'est tout! Vous avez maintenant automatisé le processus de vérification de la couverture de test dans votre projet.


Si vous avez aimé l'article, montrez votre soutien avec un ❤️ et abonnez vous a mon blog! Votre engagement m’inspire!

Github
Test Automation
Maven
CodeCov