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

Android中根据coverage.ec文件生成报告关于android中的代码覆盖率,可以参考我前几篇文章:Android手工测试代码覆盖率增强版Android手工测试的代码覆盖率AndroidUI自动化测试的代码覆盖率官方生成代码覆盖率报告的流程gradle为android提供的插件生成代码覆盖率的报告流程为首先在应用目录的生成coverage.ec文件(比如我们的应用package为com.wuba.wuxian.android_0

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

关于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加入如下语句:

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.net/162113.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 搭建nginx rtmp流媒体服务器(超详细)_nginx rtmp 集群

    搭建nginx rtmp流媒体服务器(超详细)_nginx rtmp 集群简单的直播搭建流程本微博在借鉴其他大牛之后,觉得应该写一个直播的完整流程,虽然简单,但是会有一个宏观感受:搭建nginx服务器工具:nginx下载地址:https://nginx.org/download/nginx-1.13.6.zipnginx-rtmp-module-master.zip下载地址:https://github.com/arut/nginx-rtmp-mo

    2022年9月2日
    3
  • PhpStorm 2021.1激活码 有效期2021 3月破解方法

    PhpStorm 2021.1激活码 有效期2021 3月破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
    35
  • Linux常用命令详解_shell基本命令的使用

    Linux常用命令详解_shell基本命令的使用一、日常使用命令/常用快捷键命令开关机命令    1、shutdown–hnow:立刻进行关机     2、shutdown–rnow:现在重新启动计算机     3、reboot:现在重新启动计算机     4、su-:切换用户;passwd:修改用户密码     5、logout:用户注销常用快捷命令     1、…

    2022年9月30日
    0
  • Java中的数据类型详解——boolean类型

    Java中的数据类型详解——boolean类型BooleanTest01.java/* 1、在java语言中boolean类型只有两个值,没有其他值: true和false。 不像c或者c++,c语言中1和0也可以表示布尔类型。 2、boolean类型在实际开发中使用在哪里呢? 使用在逻辑判断当中,通常放在条件的位置上(充当条件)。*/publicclassBooleanTest01{ publicstaticvoidmain(String[]args){ //错误:不兼容的类型:int无法转换为boole

    2022年7月8日
    62
  • 发html邮件乱码 java,Java发送邮件时标题和发件人乱码

    发html邮件乱码 java,Java发送邮件时标题和发件人乱码#Java发送邮件时标题和发件人乱码最近碰到一个问题,Java发送邮件时,查看邮箱结果,发件人及邮件标题正文全部乱码通过翻阅资料,原因及解决方法如下:“`//SetSubject:头字段message.setSubject(MimeUtility.encodeText(mail,MimeUtility.mimeCharset(“gb2312”),null));//设置邮件发送日期m…

    2022年5月14日
    65
  • H5音乐标签实现网页自动播放和隐藏

    H5音乐标签实现网页自动播放和隐藏网页播放音乐如果不能自动播放,用iframe放在body最下面。即可运行。<iframesrc=”no.mp3″allow=”autoplay”hidden/>

    2022年7月25日
    20

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号