58 lines
1.3 KiB
Groovy
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
|
|
}
|