Android 配置 Jacoco

669 阅读1分钟

项目根目录新建 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')