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

58 lines
1.3 KiB
Groovy

apply plugin: "jacoco"
jacoco {
toolVersion = "0.8.0"
}
jacocoTestReport {
dependsOn test
reports {
xml.enabled true
csv.enabled false
html.destination file("${buildDir}/reports/jacoco/")
}
}
if (project.parent.hasProperty("whitelistedBranchClasses")) {
project.ext.whitelistedBranchClasses = parent.whitelistedBranchClasses
} else {
project.ext.whitelistedBranchClasses = []
}
if (project.parent.hasProperty("whitelistedInstructionClasses")) {
project.ext.whitelistedInstructionClasses = parent.whitelistedInstructionClasses
} else {
project.ext.whitelistedInstructionClasses = []
}
// defaults can be overridden per project:
project.ext.minimumBranchCoverage = 0.9
project.ext.minimumInstructionCoverage = 0.9
afterEvaluate {
jacocoTestCoverageVerification {
violationRules {
rule {
element = 'CLASS'
excludes = project.whitelistedBranchClasses
limit {
counter = 'BRANCH'
minimum = project.minimumBranchCoverage
}
}
rule {
element = 'CLASS'
excludes = project.whitelistedInstructionClasses
limit {
counter = 'INSTRUCTION'
minimum = project.minimumInstructionCoverage
}
}
}
}
jacocoTestCoverageVerification.dependsOn jacocoTestReport
check.dependsOn jacocoTestCoverageVerification
}