apply plugin: "jacoco" jacoco { toolVersion "0.8.1" } tasks.withType(Test) { jacoco.includeNoLocationClasses = true } // run ./gradlew clean createDebugCoverageReport jacocoTestReport task jacocoTestReport(type: JacocoReport) { group = "Reporting" description = "Generate Jacoco coverage reports" reports { xml.enabled = true html.enabled = true } def fileFilter = ["**/R.class", "**/R\$*.class", "**/BuildConfig.*", "**/Manifest*.*", "android/**/*.*", "**/Lambda.class", "**/*Lambda.class", "**/*Lambda*.class", "**/*Lambda*.*", "**/*Builder.*" ] def debugTree = fileTree(dir: "${buildDir}/intermediates/classes/debug", excludes: fileFilter) def mainSrc = "${project.projectDir}/src/main/java" sourceDirectories = files([mainSrc]) classDirectories = files([debugTree]) executionData = fileTree(dir: project.projectDir, includes: ["**/*.exec" , "**/*.ec"]) }