前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android中根据coverage.ec文件生成报告

Android中根据coverage.ec文件生成报告

作者头像
全栈程序员站长
发布2022-09-13 16:55:21
7720
发布2022-09-13 16:55:21
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

关于android中的代码覆盖率,可以参考我前几篇文章:

Android手工测试代码覆盖率增强版 Android手工测试的代码覆盖率 Android UI自动化测试的代码覆盖率

官方生成代码覆盖率报告的流程

gradle为android提供的插件生成代码覆盖率的报告流程为首先在应用目录的生成coverage.ec文件(比如我们的应用package为com.wuba.wuxian.android_0504,那么这个coverage.ec在测试完成时会在android系统的/data/data/com.wuba.wuxian.android_0504/目录下生成),然后pull到本地的项目根目录的build/outputs/code-coverage/connected 目录下,这个时候执行createDebugCoverageReport 根据这个coverage.ec和build/intermediates/classes/debug 目录下的class文件生成报告,报告存放在项目根目录下/build/outputs/reports/coverage/debug 下。这个是官方的流程。

根据coverage.ec生成报告

我们在前一篇文章中得到了手工测试的代码覆盖率文件coverage.ec,现在我们根据这个文件如何生成代码覆盖率的报告呢?

很简单,首先我们将这个文件存放到build/outputs/code-coverage/connected下,然后在build.gradle加入如下语句:

代码语言:javascript
复制
apply plugin: 'jacoco'
def coverageSourceDirs = [
        '../app/src/main/java'
]

task jacocoTestReport(type: JacocoReport) {
    group = "Reporting"
    description = "Generate Jacoco coverage reports after running tests."
    reports {
        xml.enabled = true
        html.enabled = true
    }
    classDirectories = fileTree(
            dir: './build/intermediates/classes/debug',
            excludes: ['**/R*.class',
                       '**/*$InjectAdapter.class',
                       '**/*$ModuleAdapter.class',
                       '**/*$ViewInjector*.class'
            ])
    sourceDirectories = files(coverageSourceDirs)
    executionData = files("$buildDir/outputs/code-coverage/connected/coverage.ec")

    doFirst {
        new File("$buildDir/intermediates/classes/").eachFileRecurse { file ->
            if (file.name.contains('$$')) {
                file.renameTo(file.path.replace('$$', '$'))
            }
        }
    }
}

然后我们执行gradle jacocoTestReport 生成报告,报告的存放目录为项目根目录下的 build/reports/jacoco/jacocoTestReport目录下:

这里写图片描述
这里写图片描述

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/162113.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 官方生成代码覆盖率报告的流程
  • 根据coverage.ec生成报告
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档