diff options
| -rw-r--r-- | buildSrc/src/main/kotlin/jacoco-aggregation.gradle.kts | 5 | ||||
| -rw-r--r-- | opendc-web/opendc-web-api/build.gradle.kts | 24 |
2 files changed, 25 insertions, 4 deletions
diff --git a/buildSrc/src/main/kotlin/jacoco-aggregation.gradle.kts b/buildSrc/src/main/kotlin/jacoco-aggregation.gradle.kts index 7ae42cd2..94b20808 100644 --- a/buildSrc/src/main/kotlin/jacoco-aggregation.gradle.kts +++ b/buildSrc/src/main/kotlin/jacoco-aggregation.gradle.kts @@ -1,3 +1,5 @@ +import io.quarkus.gradle.QuarkusPlugin + /* * Copyright (c) 2021 AtLarge Research * @@ -37,6 +39,9 @@ dependencies { jacocoAggregation(this@subprojects) } + plugins.withType<QuarkusPlugin>().configureEach { + jacocoAggregation(this@subprojects) + } } } diff --git a/opendc-web/opendc-web-api/build.gradle.kts b/opendc-web/opendc-web-api/build.gradle.kts index f6ae730d..503e0a5b 100644 --- a/opendc-web/opendc-web-api/build.gradle.kts +++ b/opendc-web/opendc-web-api/build.gradle.kts @@ -28,7 +28,6 @@ plugins { kotlin("plugin.allopen") kotlin("plugin.jpa") `testing-conventions` - `jacoco-conventions` id("io.quarkus") } @@ -77,9 +76,26 @@ tasks.quarkusDev { workingDir = rootProject.projectDir.toString() } -tasks.test { - extensions.configure(JacocoTaskExtension::class) { - excludeClassLoaders = listOf("*QuarkusClassLoader") +/* Make sure the jacoco-report-aggregation plugin picks up the Quarkus coverage data */ +configurations.create("coverageDataElementsForQuarkus") { + isVisible = false + isCanBeResolved = false + isCanBeConsumed = true + + extendsFrom(configurations["implementation"], configurations["runtimeOnly"]) + + @Suppress("UnstableApiUsage") + attributes { + attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category::class.java, Category.VERIFICATION)) + attribute(VerificationType.VERIFICATION_TYPE_ATTRIBUTE, objects.named(VerificationType::class.java, VerificationType.JACOCO_RESULTS)) + } + + artifacts { + add("coverageDataElementsForQuarkus", layout.buildDirectory.file("jacoco-quarkus.exec")) { + @Suppress("UnstableApiUsage") + type = ArtifactTypeDefinition.BINARY_DATA_TYPE + builtBy(tasks.test) + } } } |
