项目根目录新建 jacoco.gradle
apply plugin: 'jacoco'
jacoco { toolVersion = "0.8.3" }
tasks.withType(Test) { jacoco.includeNoLocationClasses = true }
task jacocoTestReport(type: JacocoReport, dependsOn: ['testDebugUnitTest', 'createDebugCoverageReport']) {
reports {
xml.enabled = true
html.enabled = true
}
def fileFilter = [
'**/R.class',
'**/R$*.class',
'**/BuildConfig.*',
'**/Manifest*.*',
'**/*Test*.*',
'android/**/*.*',
'**/*$[0-9].*'
]
def debugTree = fileTree(dir: "$project.buildDir/tmp/kotlin-classes/debug", excludes: fileFilter)
def mainSrc = "$project.projectDir/src/main/kotlin"
sourceDirectories.from = files([mainSrc])
classDirectories.from = files([debugTree])
executionData.from = fileTree(dir: project.buildDir, includes: [
'jacoco/testDebugUnitTest.exec', 'outputs/code_coverage/debugAndroidTest/connected/**/*.ec'
])
}
根目录 build.gradle
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath "org.jacoco:org.jacoco.core:0.8.3"
}
}
子目录build.gradle
apply from: rootProject.file('jacoco.gradle')