From 51c19b13781995abe636fc0ec9116a61a1625311 Mon Sep 17 00:00:00 2001
From: arnaudlabourel <arnaud.labourel@univ-amu.fr>
Date: Sun, 9 Oct 2022 18:35:13 +0200
Subject: [PATCH] Added jacoco configuration for code coverage

---
 README.md    |  5 +++--
 build.gradle | 12 ++++++++++++
 2 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index 3b121d2..2b04c1d 100644
--- a/README.md
+++ b/README.md
@@ -7,8 +7,9 @@ Les commandes gradle les plus utiles :
 - `gradle test` pour lancer les tests,
 - `gradle run` pour lancer le programme,
 - `gradle jar` pour construire un `jar` dans `build/libs`.
-- `gradle checkStyleMain` pour vérifier le style du code principal (reports dans `build/reports/checkstyle/`).
-- `gradle checkStyleMain` pour vérifier le style du code de test (reports dans `build/reports/checkstyle/`).
+- `gradle checkStyleMain` pour vérifier le style du code principal avec l'outil [checkstyle](https://checkstyle.sourceforge.io/) (rapports dans `build/reports/checkstyle/`).
+- `gradle checkStyleMain` pour vérifier le style du code de test avec l'outil [checkstyle](https://checkstyle.sourceforge.io/) (rapports dans `build/reports/checkstyle/`).
+- `gradle jacocoTestReport` pour lancer la couverture de  code via l'outil [Jacoco](https://www.eclemma.org/jacoco/) (rapports dans `build/reports/jacoco/`). 
 
 Le fichier `build.gradle` contient la configuration du projet avec notamment la classe contenant la méthode `main` à exécuter.
 
diff --git a/build.gradle b/build.gradle
index e910f3f..0a051a7 100644
--- a/build.gradle
+++ b/build.gradle
@@ -2,6 +2,7 @@ plugins {
     id 'java'
     id 'application'
     id 'checkstyle'
+    id 'jacoco'
 }
 
 group 'fr.univ_amu'
@@ -24,6 +25,17 @@ dependencies {
     testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.9.0'
 }
 
+
+
+test {
+    finalizedBy jacocoTestReport // report is always generated after tests run
+}
+jacocoTestReport {
+    dependsOn test // tests are required to run before generating the report
+}
+
+
+
 test {
     useJUnitPlatform()
 }
-- 
GitLab