diff --git a/plugin/android-junit5/src/main/kotlin/de/mannodermaus/gradle/plugins/junit5/internal/extensions/ConfigurableReportExt.kt b/plugin/android-junit5/src/main/kotlin/de/mannodermaus/gradle/plugins/junit5/internal/extensions/ConfigurableReportExt.kt index 7a8b8569..01cef6fd 100644 --- a/plugin/android-junit5/src/main/kotlin/de/mannodermaus/gradle/plugins/junit5/internal/extensions/ConfigurableReportExt.kt +++ b/plugin/android-junit5/src/main/kotlin/de/mannodermaus/gradle/plugins/junit5/internal/extensions/ConfigurableReportExt.kt @@ -1,7 +1,11 @@ package de.mannodermaus.gradle.plugins.junit5.internal.extensions import org.gradle.api.file.FileSystemLocationProperty -import org.gradle.api.reporting.ConfigurableReport +import org.gradle.api.reporting.DirectoryReport +import org.gradle.api.reporting.SingleFileReport -internal val ConfigurableReport.outputLocationFile +internal val DirectoryReport.outputLocationFile + get() = outputLocation as? FileSystemLocationProperty<*> + +internal val SingleFileReport.outputLocationFile get() = outputLocation as? FileSystemLocationProperty<*> diff --git a/plugin/android-junit5/src/main/kotlin/de/mannodermaus/gradle/plugins/junit5/tasks/AndroidJUnit5JacocoReport.kt b/plugin/android-junit5/src/main/kotlin/de/mannodermaus/gradle/plugins/junit5/tasks/AndroidJUnit5JacocoReport.kt index 95e98ca8..8d758d4b 100644 --- a/plugin/android-junit5/src/main/kotlin/de/mannodermaus/gradle/plugins/junit5/tasks/AndroidJUnit5JacocoReport.kt +++ b/plugin/android-junit5/src/main/kotlin/de/mannodermaus/gradle/plugins/junit5/tasks/AndroidJUnit5JacocoReport.kt @@ -15,8 +15,6 @@ import de.mannodermaus.gradle.plugins.junit5.internal.providers.mainSourceDirect import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.file.FileCollection -import org.gradle.api.file.FileSystemLocationProperty -import org.gradle.api.reporting.ConfigurableReport import org.gradle.api.tasks.CacheableTask import org.gradle.api.tasks.TaskProvider import org.gradle.api.tasks.testing.Test @@ -90,15 +88,23 @@ public abstract class AndroidJUnit5JacocoReport : JacocoReport() { // Apply JUnit 5 configuration parameters val junit5Jacoco = project.junitPlatform.jacocoOptions - val allReports = listOf( - junit5Jacoco.csv to reportTask.reports.csv, - junit5Jacoco.xml to reportTask.reports.xml, - junit5Jacoco.html to reportTask.reports.html - ) - - allReports.forEach { (from, to) -> - to.required.set(from.enabled) - from.destination?.let { to.outputLocationFile?.set(it) } + junit5Jacoco.csv.also { from -> + reportTask.reports.csv.also { to -> + to.required.set(from.enabled) + from.destination?.let { to.outputLocationFile?.set(it) } + } + } + junit5Jacoco.xml.also { from -> + reportTask.reports.xml.also { to -> + to.required.set(from.enabled) + from.destination?.let { to.outputLocationFile?.set(it) } + } + } + junit5Jacoco.html.also { from -> + reportTask.reports.html.also { to -> + to.required.set(from.enabled) + from.destination?.let { to.outputLocationFile?.set(it) } + } } // Task-level Configuration diff --git a/plugin/android-junit5/src/test/kotlin/de/mannodermaus/gradle/plugins/junit5/plugin/AgpJacocoBaseTests.kt b/plugin/android-junit5/src/test/kotlin/de/mannodermaus/gradle/plugins/junit5/plugin/AgpJacocoBaseTests.kt index 3eab842f..71d43b80 100644 --- a/plugin/android-junit5/src/test/kotlin/de/mannodermaus/gradle/plugins/junit5/plugin/AgpJacocoBaseTests.kt +++ b/plugin/android-junit5/src/test/kotlin/de/mannodermaus/gradle/plugins/junit5/plugin/AgpJacocoBaseTests.kt @@ -7,7 +7,8 @@ import de.mannodermaus.gradle.plugins.junit5.tasks.AndroidJUnit5JacocoReport import de.mannodermaus.gradle.plugins.junit5.tasks.JACOCO_TASK_NAME import de.mannodermaus.gradle.plugins.junit5.util.assertAll import de.mannodermaus.gradle.plugins.junit5.util.evaluate -import org.gradle.api.reporting.ConfigurableReport +import org.gradle.api.reporting.DirectoryReport +import org.gradle.api.reporting.SingleFileReport import org.gradle.testing.jacoco.tasks.JacocoReport import org.junit.jupiter.api.DynamicTest import org.junit.jupiter.api.DynamicTest.dynamicTest @@ -106,6 +107,9 @@ interface AgpJacocoBaseTests : AgpVariantAwareTests { /* Private */ - private val ConfigurableReport.outputLocationFilePath get() = + private val SingleFileReport.outputLocationFilePath get() = + outputLocationFile?.asFile?.get()?.absolutePath + + private val DirectoryReport.outputLocationFilePath get() = outputLocationFile?.asFile?.get()?.absolutePath }