1

无法获得 Espresso 代码覆盖率报告,我是 android studio 的新手,并尝试了以下设置以生成报告。

请找到 build.gradle 设置:

apply plugin: 'com.getkeepsafe.dexcount'
apply plugin: 'realm-android'
apply plugin: 'jacoco'

 buildTypes {
        debug {
            debuggable true
            minifyEnabled false
            multiDexEnabled true
            testCoverageEnabled true
        }

当我使用“CreateDebugAndroidTestCoverage”运行记录的测试时,我得到以下报告:

在此处输入图像描述

在此处输入图像描述

我期待包含方法、行详细信息等的列:

请找到我期望的报告类型的屏幕截图:

在此处输入图像描述

4

1 回答 1

1

您需要通过在模块的 Gradle 文件中创建任务来为 jacoco 报告添加配置(通常,app/build.gradle)。在该任务中,您需要添加createDebugCoverageReportfordepnedsOn属性。让我向您展示它的外观示例:

// Task declaration
task jacocoTestReport(type: JacocoReport) {
    // Runs only after the dependencies are executed
    dependsOn = ['testDebugUnitTest', 'createDebugCoverageReport']
    // Export formats
    reports {
        xml.enabled = true
        html.enabled = true
    }

    sourceDirectories.from = files(coverageSourceDirs)
    classDirectories.from = fileTree(
            dir: './build/intermediates/classes/debug',
            excludes: ['**/R*.class'
            ])

    // Inform Gradle where the files generated by test cases - are located
    executionData.from = fileTree(dir: project.buildDir, includes: [
            'jacoco/testDebugUnitTest.exec',
            'outputs/code_coverage/debugAndroidTest/connected/*.ec'
    ])
}

现在,您可以使用覆盖率运行此任务,它将为您提供覆盖率。

于 2021-01-06T09:15:16.370 回答