Android Instrumented Tests 覆盖范围不包括苍蝇 [英] Android Instrumented Tests coverage exclude flies

查看:25
本文介绍了Android Instrumented Tests 覆盖范围不包括苍蝇的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用gradlew createDebugCoverageReport"运行我的测试.我的问题是覆盖率报告包括我拥有的每个源文件.我想排除一些文件.我将此添加到我的 build.gradle 中,但它不起作用:

I run my tests with "gradlew createDebugCoverageReport". My problem is that the coverage report includes every single source file I have. I want to exclude some files. I added this to my build.gradle but it did not work:

sourceSets {
    androidTest {
        java
                {
                    exclude '**/TouchImageView.java'
                }
    }
}

推荐答案

你必须在 build.gradle 的开头添加 jacoco 插件

You have to add the jacoco plugin at the begining of your build.gradle

apply plugin: 'jacoco'

然后使用 testCoverageEnabled true 即启用覆盖率

Then enable the coverage with testCoverageEnabled true i.e

buildTypes {
        release {
            ...
        }
        debug {
            testCoverageEnabled true
        }
    }

并创建任务jacocoTestReport:

task jacocoTestReport(type:JacocoReport, dependsOn: "connectedDebugAndroidTest") {

    group = "Reporting"

    description = "Generate Jacoco coverage reports"

    // exclude auto-generated classes and tests
    def fileFilter = ['**/R.class',
                      '**/R$*.class',
                      '**/BuildConfig.*',
                      '**/Manifest*.*',
                      '**/*IScript*.*',
                      'android/**/*.*',
                      '**/*_Factory*',
                      '**/*_MembersInjector*',
                      '**/*Fake*']

    def debugTree = fileTree(dir:
            "${project.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'])

    reports {
        xml.enabled = true
        xml.destination = "${buildDir}/jacocoTestReport.xml"
        csv.enabled = false
        html.enabled = true
        html.destination = "${buildDir}/reports/jacoco"
    }
}

将排除项添加到 fileFilter 数组.然后运行报告:

Add your exclusions to fileFilter array. Then run the report:

$ gradle jacocoTestReport

这篇关于Android Instrumented Tests 覆盖范围不包括苍蝇的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆