Exclude a Kotlin subproject from Gradle Jacoco
In my project, one of the subproject is NodeJS hence the usual Jacoco setup:
tasks.withType(Test) {
finalizedBy jacocoTestReport
}
doesn’t work as Jacoco fails since it can’t locate test execution binary for the nodeJS project.
After some trial & error, found out this approch works:
tasks.withType(Test).each { testTask ->
//nodeJS doesn't support jacoco
if(!testTask.getProject().toString().contains("nodejsproject")) {
testTask.finalizedBy(jacocoTestReport)
}
}
then add jacoco gradle setup as usual with executionData setup:
apply plugin: 'jacoco'
jacocoTestReport {
executionData { tasks.withType(Test).findAll { it.jacoco.destinationFile.exists() }*.jacoco.destinationFile }
reports {
xml.enabled true
xml.destination(file("${jacoco.reportsDir}/xml/jacocoTestReport.xml"))
html.enabled true
html.destination(file("${jacoco.reportsDir}/html"))
}
}