plugins { jacoco `jvm-test-suite` alias(libs.plugins.kotlin.multiplatform) alias(libs.plugins.android.library) } kotlin { jvmToolchain(libs.versions.jdk.get().toInt()) jvm() androidTarget() sourceSets { commonMain { dependencies { implementation(libs.bundles.logging) } } commonTest { dependencies { implementation(libs.kotlin.test) 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 } } } } } android { compileSdk = libs.versions.android.compileSdk.get().toInt() namespace = "ch.dissem.yaep.domain" defaultConfig { minSdk = libs.versions.android.minSdk.get().toInt() } sourceSets { getByName("test") { resources.srcDirs("src/commonTest/resources") } } buildTypes { debug { enableAndroidTestCoverage = true enableUnitTestCoverage = true } } }