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 }