From 3489613afc7835ec82025678f8a3f66949ede752 Mon Sep 17 00:00:00 2001 From: Christian Basler Date: Sun, 12 Oct 2025 00:23:17 +0200 Subject: [PATCH] Add code coverage for domain --- domain/build.gradle.kts | 50 ++++++++++++++++++++++++++++++++--------- 1 file changed, 40 insertions(+), 10 deletions(-) diff --git a/domain/build.gradle.kts b/domain/build.gradle.kts index 395ac53..0fe59d1 100644 --- a/domain/build.gradle.kts +++ b/domain/build.gradle.kts @@ -1,4 +1,6 @@ plugins { + jacoco + `jvm-test-suite` alias(libs.plugins.kotlin.multiplatform) alias(libs.plugins.android.library) } @@ -9,15 +11,6 @@ kotlin { jvm() androidTarget() -// @OptIn(ExperimentalWasmDsl::class) -// wasmJs { -// moduleName = "yaep-commonUI" -// browser() -// binaries.executable() -// } - -// linuxX64() - sourceSets { commonMain { dependencies { @@ -31,6 +24,36 @@ kotlin { implementation(libs.atrium) } } + + jvmTest { + tasks.register(name = "jacocoTestReport", type = JacocoReport::class) { + group = "verification" + description = "Generate Jacoco coverage report" + + dependsOn(tasks.withType(Test::class)) + + val coverageSourceDirs = arrayOf( + "src/commonMain" + ) + + val buildDirectory = layout.buildDirectory + + val classFiles = buildDirectory.dir("classes/kotlin/jvm").get().asFile + .walkBottomUp() + .toSet() + + classDirectories.setFrom(classFiles) + sourceDirectories.setFrom(files(coverageSourceDirs)) + + buildDirectory.files("jacoco/jvmTest.exec").let { + executionData.setFrom(it) + } + + reports { + xml.required = true + } + } + } } } @@ -47,4 +70,11 @@ android { resources.srcDirs("src/commonTest/resources") } } -} \ No newline at end of file + + buildTypes { + debug { + enableAndroidTestCoverage = true + enableUnitTestCoverage = true + } + } +}