android - 忽略 jacoco 测试覆盖率中的失败测试

标签 android code-coverage android-testing jacoco

我正在使用 robolectric 进行单元测试和仪器测试来测试 Android 应用程序。我已启用 jacoco 测试覆盖率插件来提供覆盖率报告,但当至少有一个失败的测试时它不会创建。在 jacoco 中如何忽略失败?

这是我的 gradle.build

apply plugin: 'com.android.application'

    android {
        jacoco {
            version = '0.7.3.201502191951'
        }

        testOptions {
            unitTests.returnDefaultValues = true
        }

        compileSdkVersion 22
        buildToolsVersion '22.0.1'

        defaultConfig {
            applicationId "com.nitralabs.m1_mm"
            minSdkVersion 12
            targetSdkVersion 18
        }

        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            }
            debug {
                testCoverageEnabled = true
            }
        }

    ...
    }

    dependencies {
        testCompile 'org.robolectric:robolectric:3.0'
        testCompile 'junit:junit:4.12'
        ...
    }

    task jacocoReport << {
        ant {
            taskdef(name: 'jacocoreport',
                    classname: 'org.jacoco.ant.ReportTask',
                    classpath: configurations.jacocoReport.asPath,
                    ignoreFailures: true, i)

            mkdir dir: "${buildDir}/test-coverage-report"
            mkdir dir: "${buildDir}/reports/jacoco/test/"

            jacocoreport {
                executiondata {
                    fileset dir: "${buildDir}/jacoco"
                }

                structure(name: "${rootProject.name}") {
                    classfiles {
                        fileset(dir: "${buildDir}/intermediates/classes/debug") {
                            exclude(name: '**/R.class')
                            exclude(name: '**/R$*.class')
                        }
                    }

                    sourcefiles {
                        fileset dir: "src/main/java"
                        fileset dir: 'build/generated/source/buildConfig/debug'
                    }
                }

                xml destfile: "${buildDir}/reports/jacoco/test/jacocoTestReport.xml"
                html destdir: "${buildDir}/test-coverage-report/"
            }
        }
    }

    project.afterEvaluate {
        def append = "append=true"
        def destFile = "destfile=$buildDir/outputs/code-coverage/connected/coverage.ec"
        testDebug.jvmArgs "-javaagent:$buildDir/intermediates/jacoco/jacocoagent.jar=$append,$destFile"
        createDebugCoverageReport.dependsOn testDebug
    } 

最佳答案

这是我忽略失败的单元测试的相关配置

android {

 testOptions {
    unitTests.all {
        setIgnoreFailures(true)
    }
}

buildTypes {
    debug {
        testCoverageEnabled true
        }
    }
}       

关于android - 忽略 jacoco 测试覆盖率中的失败测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33415623/

相关文章:

安卓用户界面 : what kind of layout options are mutually exclusive?

android - 在sqlite数据库中搜索

android - 如何在双卡手机中使用 SMSmanager 发送短信?

android - 如何检查电话是否处于空闲状态或电话是否脱离空闲状态?

rust - rustdoc 是否生成可运行的二进制文件?

scala - sbt 和 scct .... 未找到模块 : reaktor#sbt-scct;0. 2-SNAPSHOT

haskell - 如何从 HPC 的代码覆盖范围中排除 Show 的派生?

android - Robotium 能否测试应用内计费、社交分享、 Intent 等功能?

java - JUnit 测试 if else 情况

android - 将 Android Monkey 随机运行保存为脚本格式以供以后重播