opentelemetry-java-instrume.../gradle/jacoco.gradle

65 lines
1.6 KiB
Groovy

apply plugin: "jacoco"
jacoco {
toolVersion = "0.8.5"
}
jacocoTestReport {
dependsOn test
reports {
xml.enabled true
csv.enabled false
html.destination file("${buildDir}/reports/jacoco/")
}
}
if (!project.ext.hasProperty("excludedClassesCoverage")) {
project.ext.excludedClassesCoverage = []
}
if (!project.ext.hasProperty("excludedClassesBranchCoverage")) {
project.ext.excludedClassesBranchCoverage = []
}
if (!project.ext.hasProperty("excludedClassesInstructionCoverage")) {
project.ext.excludedClassesInstructionCoverage = []
}
// defaults can be overridden per project:
project.ext.minimumBranchCoverage = 0.9
project.ext.minimumInstructionCoverage = 0.9
afterEvaluate {
tasks.withType(Test) {
jacoco {
// Make sure that excluded classes do not get jacoco instrumentation applied since it may confuse apm agent in some cases
excludes = project.excludedClassesCoverage
}
}
jacocoTestCoverageVerification {
violationRules {
rule {
element = 'CLASS'
excludes = project.excludedClassesBranchCoverage + project.excludedClassesCoverage
limit {
counter = 'BRANCH'
minimum = project.minimumBranchCoverage
}
}
rule {
element = 'CLASS'
excludes = project.excludedClassesInstructionCoverage + project.excludedClassesCoverage
limit {
counter = 'INSTRUCTION'
minimum = project.minimumInstructionCoverage
}
}
}
}
jacocoTestCoverageVerification.dependsOn jacocoTestReport
check.dependsOn jacocoTestCoverageVerification
}