Skip to content

Commit

Permalink
Fixes executionData file getting overridden
Browse files Browse the repository at this point in the history
  • Loading branch information
gmazzo committed Jul 13, 2021
1 parent 93454df commit 08ec9f9
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,28 +5,36 @@ import org.gradle.api.Task
import org.gradle.api.provider.Provider
import org.gradle.api.tasks.TaskProvider
import org.gradle.testing.jacoco.plugins.JacocoTaskExtension
import org.gradle.testing.jacoco.tasks.JacocoReport
import java.io.File

open class JacocoTestKitExtension(private val project: Project) {
val jacocoRuntimePathProvider: Provider<String> = project.provider { project.configurations.getByName(Configurations.jacocoRuntime).asPath }

fun applyTo(configurationRuntime: String, taskProvider: TaskProvider<Task>) {
with(project) {
val destinationFile = taskProvider.map { task ->
val extension = task.extensions.getByType(JacocoTaskExtension::class.java)
val file = checkNotNull(extension.destinationFile) { "destinationFile is missing on task $name jacoco extension" }

File(file.parentFile, "${file.nameWithoutExtension}-gradle-runner.${file.extension}")
}

val jacocoTestKitPropertiesTask = tasks.register(
generatePropertiesTaskName(taskProvider.name),
GenerateJaCoCoTestKitProperties::class.java
) {
it.outputFile = File(buildDir, "testkit/${taskProvider.name}/testkit-gradle.properties")
it.destinationFile.set(
taskProvider.map {
task -> task.extensions.getByType(JacocoTaskExtension::class.java).destinationFile!!.path
}.get()
)
it.destinationFile.set(destinationFile.get().path)
it.jacocoRuntimePath.set(jacocoRuntimePathProvider)
}

dependencies.add(configurationRuntime, files(testKitDir(taskProvider.name)))
taskProvider.configure { it.dependsOn(jacocoTestKitPropertiesTask) }

tasks.withType(JacocoReport::class.java)
.matching { it.name == "jacoco${taskProvider.name.capitalize()}Report" }
.all { it.executionData(destinationFile) }
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ class JaCoCoTestKitPluginFunctionalTest {
.startsWith("\"-javaagent:")
.contains("=destfile=")
.contains(JacocoPlugin.DEFAULT_JACOCO_VERSION)
.endsWith("test.exec\"")
.endsWith("test-gradle-runner.exec\"")
}

@Test
Expand Down Expand Up @@ -119,7 +119,7 @@ class JaCoCoTestKitPluginFunctionalTest {

val args = readArgsFromProperties()
assertThat(args)
.endsWith("integration.exec\"")
.endsWith("integration-gradle-runner.exec\"")
}

@Test
Expand All @@ -134,7 +134,7 @@ class JaCoCoTestKitPluginFunctionalTest {

val args = readArgsFromProperties("integrationTest")
assertThat(args)
.endsWith("integrationTest.exec\"")
.endsWith("integrationTest-gradle-runner.exec\"")
}

private fun readArgsFromProperties(taskName: String = "test"): String {
Expand Down

0 comments on commit 08ec9f9

Please sign in to comment.