Gradle skip JaCoCo during test
I found that if you do the apply plugin then the jacoco instrumentation takes place even if you have done the dependsOn.remove as noted in the accepted answer. You can tell the instrumentation is still occurring as a file called build/jacoco/test.exec is created even if the jacoco reports themselves are not created.
I had to extract the jacoco plugin apply to a separate .gradle file and conditionally include it like:
if (jacocoEnabled.toBoolean() ) {
project.logger.lifecycle('applying jacoco build file')
apply from: "jacoco.gradle"
}
Then my jacoco.gradle file looks like:
apply plugin: 'java'
apply plugin: 'jacoco'
test {
jacoco {
append = false
destinationFile = file("$buildDir/jacoco/test.exec")
}
}
jacocoTestReport {
reports {
xml.enabled true
xml.destination file("${buildDir}${jacocoXMLDestination}")
}
}
test.finalizedBy jacocoTestReport
This took my build time from 4 minutes to 3 minutes - providing some savings.
Edit
After reading the second answer and testing it myself I greatly suggest and appreciate the below blog post as it's true the instrumentation still happens even after disabling or removing the tasks.
https://poetengineer.postach.io/post/how-to-conditionally-enable-disable-jacoco-in-gradle-build
If it does runs on Jenkins, error 137 might be out of memory issue.
If it runs on Jenkins please try to extend the memory and check this link.
I'm getting OutOfMemoryError
Jacoco tasks:
jacocoTestReport - JacocoReport Generates code coverage report for the test task.
jacocoTestCoverageVerification - JacocoCoverageVerification Verifies code coverage metrics based on specified rules for the test task.
To find out which tasks have which dependencies you can do
gradle tasks --all
To exclude the task with cmd you can
gradle test -x taskToExclude
Programmatically you can use a task graph to exclude it
gradle.taskGraph.useFilter { task -> yourstuff}
or simply remove it from test task dependencies
test.dependsOn.remove("jacocoTestReport")
test.dependsOn.remove("jacocoTestCoverageVerification")
Additional resource worth checking: https://docs.gradle.org/current/userguide/jacoco_plugin.html