从coverage.ec 文件获取覆盖范围信息

Gau*_*nco 3 testing mobile android emma jacoco

我正在使用一种移动测试工具,该工具可以在名为coverage.ec(使用 EMMA)的文件上生成覆盖率报告。该文件不可读,但我想知道如何访问它包含的信息。我只需要阅读一般覆盖率。

Ste*_*uda 6

我的情况非常相似。我有一个coverage.ec 文件,但我不知道如何将其转换为可读的报告。 这篇文章对我很有帮助。

那里有比您可能需要的更多的信息,但对我来说,重要的部分是将其添加到 build.gradle 中:

apply plugin: 'jacoco'

def coverageSourceDirs = [
'src/main/java',
'src/debug/java']

task jacocoTestReport(type : JacocoReport, dependsOn : 'testDebugUnitTest') {
group       = 'Reporting'
description = 'Generate JaCoCo coverage reports'

reports {
    xml.enabled  = true
    html.enabled = true
}

classDirectories = fileTree(
    dir      : 'build/intermediates/classes/debug',
    excludes : [
        '**/R.class',
        '**/R$*.class',
        '**/*$ViewInjector*.*',
        '**/*$ViewBinder*.*',
        '**/BuildConfig.*',
        '**/Manifest*.*',
        '**/*RealmProxy.*',
        '**/*ColumnInfo.*',
        '**/*RealmModule*.*',
        '**/AutoValue_*.*',
        '**/Dagger*.*',
        '**/*Module_Provide*Factory.*',
        '**/*_Factory.*',
        '**/*_MembersInjector.*',
        '**/*_LifecycleAdapter.*'
    ]
)

sourceDirectories = files(coverageSourceDirs)
executionData     = fileTree(
    dir     : "$buildDir",
    include : [ 'jacoco/testDebugUnitTest.exec', 'outputs/code-coverage/connected/*coverage.ec' ]
)

doFirst {
    files('build/intermediates/classes/debug').getFiles().each { file ->
        if (file.name.contains('$$')) {
            file.renameTo(file.path.replace('$$', '$'))
        }
    }
}}
Run Code Online (Sandbox Code Playgroud)

从这里,我将coverage.ec 文件放置在app/build/outputs/code-coverage/connected/coverage.ec 中。

之后,我运行 jacocoTestReport gradle 任务,它为我的单元测试和位于 app/build/reports/jacoco/jacocoTestReport/html/index.html 中的coverage.ec 文件生成合并报告

希望这可以帮助!