Skip to content

Commit

Permalink
Generate Jacoco XML reports for JVM platform
Browse files Browse the repository at this point in the history
  • Loading branch information
mrapplexz committed Aug 27, 2020
1 parent b391803 commit 72fb7d6
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 4 deletions.
4 changes: 2 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
projectVersion=1.9.2
projectChangelog=Disable browser JS testing
projectVersion=1.10.0
projectChangelog=The plugin now automatically generates Jacoco XML reports for JVM platform

projectDescription=A Gradle plugin that simplifies the creation of %type% multiplatform Kotlin projects.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,10 @@
package net.pearx.multigradle.util

import org.gradle.api.Project
import org.gradle.api.file.FileCollection
import org.gradle.kotlin.dsl.*
import org.jetbrains.dokka.gradle.DokkaTask
import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension

internal fun Project.configureDokka(dokka: DokkaTask, outputFormat: String, outputName: String, vararg platformList: String) {
with(dokka) {
Expand All @@ -23,4 +25,8 @@ internal fun Project.configureDokka(dokka: DokkaTask, outputFormat: String, outp
}
}
}
}

internal fun Project.findSourceDirectories(endsWith: String): FileCollection {
return files(the<KotlinProjectExtension>().sourceSets.filter { it.name.endsWith(endsWith) }.map { it.kotlin.sourceDirectories }).filter { it.isDirectory }
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,10 @@ import org.gradle.api.tasks.testing.Test
import org.gradle.kotlin.dsl.*
import org.gradle.testing.jacoco.plugins.JacocoPlugin
import org.gradle.testing.jacoco.plugins.JacocoPluginExtension
import org.gradle.testing.jacoco.plugins.JacocoTaskExtension
import org.gradle.testing.jacoco.tasks.JacocoReport
import org.jetbrains.dokka.gradle.DokkaTask
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

class JvmPlatformConfig(project: Project) : PlatformConfig(project) {
lateinit var junitJupiterVersion: String
Expand Down Expand Up @@ -73,9 +76,22 @@ val JvmPlatform = platform("jvm", listOf("jvmTest"), { JvmPlatformConfig(it) })
}

tasks {
named<Test>("jvmTest") {
reports.junitXml.isEnabled = true
val jvmTest by existing(Test::class)
val jacocoJvmTestReport by registering(JacocoReport::class)

jacocoJvmTestReport.configure {
dependsOn(jvmTest)
reports {
xml.isEnabled = true
}
executionData(jvmTest.get().the<JacocoTaskExtension>().destinationFile!!)
sourceDirectories.from(findSourceDirectories("Main"))
classDirectories.from(tasks.getByName<KotlinCompile>("compileKotlinJvm").destinationDir)
}
jvmTest.configure {
finalizedBy(jacocoJvmTestReport)
useJUnitPlatform()
reports.junitXml.isEnabled = true
}
}
}

0 comments on commit 72fb7d6

Please sign in to comment.