android - 从 coverage.ec 文件获取覆盖率信息

标签 android testing mobile jacoco emma

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

最佳答案

我的情况非常相似。我有一个 coverage.ec 文件,但我不知道如何将它转换成可读的报告。 This article was very helpful for me.

那里的信息比您可能需要的多得多,但对我来说重要的部分是将其添加到 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('$$', '$'))
        }
    }
}}

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

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

希望这对您有所帮助!

关于android - 从 coverage.ec 文件获取覆盖率信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49063328/

相关文章:

testing - 无法获取 SDP 描述 : 404 Stream not found testRTSPClient in LIVE555

css - 需要在屏幕底部放置移动广告单元

jquery - PhoneGap jquerymobile session

android - 在 Android 中将项目添加到顶部时保持列表的滚动位置

具有多个页面的 Android Wear Smartwatch 通知 - 小图标仅显示在第一页上?

Git 分支策略与测试/QA 流程相结合

html - 网站页眉导航栏和页脚在移动设备上不会达到 100%

android - 如何将 textview 放置在 android 的布局边框上?

java - 升级 android 版本后得到 "Duplicate class android.support.v4.app.INotificationSideChannel"

ruby-on-rails - Ruby on Rails - 如何对用户上传的 Ruby 文件运行自动化测试?