65 lines
1.6 KiB
Groovy
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 {
|
|
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
|
|
}
|