diff --git a/android/build.gradle.kts b/android/build.gradle.kts index 5fa73e5..fd99eb0 100644 --- a/android/build.gradle.kts +++ b/android/build.gradle.kts @@ -1,9 +1,9 @@ plugins { - jacoco + alias(libs.plugins.kotlin.kover) alias(libs.plugins.android.application) alias(libs.plugins.compose.compiler) alias(libs.plugins.compose) - alias(libs.plugins.jetbrains.kotlin.android) + alias(libs.plugins.kotlin.android) } android { diff --git a/build.gradle.kts b/build.gradle.kts index 1a54760..b1d1d42 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,4 +1,3 @@ -import com.android.build.gradle.internal.coverage.JacocoReportTask import com.android.build.gradle.internal.lint.AndroidLintTask import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask import org.jetbrains.kotlin.gradle.dsl.JvmTarget @@ -8,13 +7,14 @@ import org.sonarqube.gradle.SonarTask plugins { alias(libs.plugins.versions) alias(libs.plugins.sonarqube) + alias(libs.plugins.kotlin.kover) alias(libs.plugins.android.application) apply false alias(libs.plugins.android.library) apply false alias(libs.plugins.compose) apply false alias(libs.plugins.compose.compiler) apply false alias(libs.plugins.kotlin.multiplatform) apply false alias(libs.plugins.kotlin.jvm) apply false - alias(libs.plugins.jetbrains.kotlin.android) apply false + alias(libs.plugins.kotlin.android) apply false } sonar { @@ -22,17 +22,9 @@ sonar { property("sonar.projectKey", "YAEP") property("sonar.projectName", "YAEP") - val reports = subprojects - .flatMap { p -> - p.tasks.withType() - } - .map { t -> - "${t.outputReportDir.asFile.get()}/report.xml" - } - property( "sonar.coverage.jacoco.xmlReportPaths", - reports + "${layout.buildDirectory.asFile.get()}/reports/kover/report.xml" ) } } @@ -43,11 +35,7 @@ tasks.withType().configureEach { .flatMap { it.tasks.withType() } .filter { it.variantName != "release" } ) - dependsOn( - subprojects - .flatMap { it.tasks.withType() } - .filter { it.variantName != "release" } - ) + dependsOn("koverXmlReport") } tasks.withType().configureEach { @@ -76,3 +64,10 @@ subprojects { } } } + +dependencies { + kover(projects.domain) + kover(projects.commonUI) + kover(projects.desktop) + kover(projects.android) +} \ No newline at end of file diff --git a/commonUI/build.gradle.kts b/commonUI/build.gradle.kts index a6ec30c..438c318 100644 --- a/commonUI/build.gradle.kts +++ b/commonUI/build.gradle.kts @@ -2,7 +2,7 @@ import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSetTree plugins { - jacoco + alias(libs.plugins.kotlin.kover) alias(libs.plugins.kotlin.multiplatform) alias(libs.plugins.android.library) alias(libs.plugins.compose) @@ -63,6 +63,18 @@ android { compose = true } + sourceSets { + getByName("test") { + resources.srcDirs("src/commonTest/resources") + } + } + + buildTypes { + debug { + enableAndroidTestCoverage = true + enableUnitTestCoverage = true + } + } } compose.resources { diff --git a/desktop/build.gradle.kts b/desktop/build.gradle.kts index 9d4d0f7..9830edb 100644 --- a/desktop/build.gradle.kts +++ b/desktop/build.gradle.kts @@ -1,7 +1,7 @@ import org.jetbrains.compose.desktop.application.dsl.TargetFormat plugins { - jacoco + alias(libs.plugins.kotlin.kover) alias(libs.plugins.kotlin.jvm) alias(libs.plugins.compose.compiler) alias(libs.plugins.compose) diff --git a/domain/build.gradle.kts b/domain/build.gradle.kts index 0784b9f..28a13b2 100644 --- a/domain/build.gradle.kts +++ b/domain/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - jacoco + alias(libs.plugins.kotlin.kover) alias(libs.plugins.kotlin.multiplatform) alias(libs.plugins.android.library) } @@ -11,17 +11,13 @@ kotlin { androidTarget() sourceSets { - commonMain { - dependencies { - implementation(libs.bundles.logging) - } + commonMain.dependencies { + implementation(libs.bundles.logging) } - commonTest { - dependencies { - implementation(libs.kotlin.test) - implementation(libs.atrium) - } + commonTest.dependencies { + implementation(libs.kotlin.test) + implementation(libs.atrium) } } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 369319b..432840c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -40,5 +40,6 @@ kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } compose = { id = "org.jetbrains.compose", version.ref = "compose-plugin" } -jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } +kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } sonarqube = { id = "org.sonarqube", version = "6.3.1.5724" } +kotlin-kover = { id = "org.jetbrains.kotlinx.kover", version = "0.9.2" } \ No newline at end of file