ext.excludeFileFilter = [ //excludedFiles ] jacoco { toolVersion = "0.8.2" } ext { limits = [ 'instruction': 50 ] } def includeFileFilter = [ //IncludedFile ] def debugTree = fileTree(dir: "${buildDir}/intermediates/classes/flavorUnsigned/debug", includes: includeFileFilter, excludes: excludeFileFilter) def kotlinDebugTree = fileTree(dir: "${buildDir}/tmp/kotlin-classes/flavorUnsignedDebug", includes: includeFileFilter, excludes: excludeFileFilter) def mainSrc = "${project.projectDir}/src/main/java" task jacocoTestReport(type: JacocoReport, dependsOn: ['testFlavorUnsignedDebugUnitTest', 'assembleDebug']) { reports { xml.enabled = true html.enabled = true } sourceDirectories = files([mainSrc]) classDirectories = files([debugTree], [kotlinDebugTree]) executionData = fileTree(dir: "$buildDir", includes: [ "jacoco/testFlavorUnsignedDebugUnitTest.exec", ]) } check.dependsOn jacocoTestReport android { testOptions { unitTests.all { jacoco { includeNoLocationClasses = true } } unitTests.returnDefaultValues = true } }