From fc5e9ddda7fc4f9c19e25941329bf88e431dcea5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20M=C3=B6rling?= Date: Fri, 15 May 2026 12:15:45 +0200 Subject: [PATCH] chore: add JaCoCo coverage enforcement to backend - Add jacoco plugin (bundled with Gradle, no extra dependency) - jacocoTestReport: generates HTML + XML reports, runs after test - jacocoTestCoverageVerification: enforces 70% line coverage and 60% branch coverage at the bundle level - Wire jacocoTestCoverageVerification into tasks.named('check') so ./gradlew check blocks if coverage drops below thresholds - HTML report output: backend/build/reports/jacoco/index.html - test task finalizedBy jacocoTestReport so report is always available after running tests --- backend/build.gradle | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/backend/build.gradle b/backend/build.gradle index 9afc24a..eed3c05 100644 --- a/backend/build.gradle +++ b/backend/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java' + id 'jacoco' id 'org.springframework.boot' version '4.0.6' id 'io.spring.dependency-management' version '1.1.7' } @@ -44,4 +45,39 @@ dependencies { tasks.named('test') { useJUnitPlatform() + finalizedBy jacocoTestReport +} + +jacoco { + toolVersion = "0.8.12" +} + +jacocoTestReport { + dependsOn test + reports { + xml.required = true + csv.required = false + html.required = true + } +} + +jacocoTestCoverageVerification { + dependsOn jacocoTestReport + violationRules { + rule { + limit { + minimum = 0.70 + } + } + rule { + limit { + counter = 'BRANCH' + minimum = 0.60 + } + } + } +} + +tasks.named('check').configure { + dependsOn jacocoTestCoverageVerification }