关于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 = truehtml.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目录下:

Android中根据coverage.ec文件生成报告相关推荐

  1. python中__init__.py的用法,执行指定的多个.py文件生成报告。简单粗暴1

    这里以执行指定的多个test.py文件生成报告为例 __init__.py文件用于组织包(package). 简单来说,包是含有python模块的文件夹.一个python模块(module)为一个py ...

  2. 解决 无法读取到 /data/data/yourPackageName/files/coverage.ec 文件

    参考 https://testerhome.com/topics/8554 这篇文章 jacoco生成coverage.ec 在/data/data/yourPackageName/files/ 下, ...

  3. Android中对Log日志文件的分析

    Android中对Log日志文件的分析 如何分析和研究Log文件 ,如何看日志信息 Log 在android中的地位非常重要,要是作为一个android程序员不能过分析log这关,算是android没 ...

  4. android raw文件作用,Android 中raw和assets文件夹的区别

    Android 中raw和assets文件夹的区别 发布时间:2020-09-25 08:40:41 来源:脚本之家 阅读:103 作者:lqh Android 中raw和assets文件夹的区别 以 ...

  5. android 文件删除命令大全,Android中删除sdcard里文件的命令

    Android中删除sdcard里文件的命令 有时我们需要删除android模拟器或手机上的sd卡文件,特别是模拟器上的,这时我们就需要借助于一些命令来帮助我们删除文件. 复制代码 代码如下: #重新 ...

  6. android 大文件加密,如何在android中加密大视频文件

    我有一个应用程序,我正在使用该代码来解密已加密的文件.文件位置是"/mnt/sdcard/myfolder/test.mp4". test.mp4文件大小约为20MB.如何在and ...

  7. Android中对Log日志文件的分析[转]

    一,Bug出现了, 需要"干掉"它 bug一听挺吓人的,但是只要你懂了,android里的bug是很好解决的,因为android里提供了LOG机制,具体的底层代码,以后在来分析,只 ...

  8. Android开发——Android中的二维码生成与扫描

    0. 前言 今天这篇文章主要描述二维码的生成与扫描,使用目前流行的Zxing,为什么要讲二维码,因为二维码太普遍了,随便一个Android APP都会有二维码扫描.本篇旨在帮助有需求的同学快速完成二维 ...

  9. Android中的二维码生成与扫描

    转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/51260428 本文出自:[顾林海的博客] 前言 月底离开公司,准备月底 ...

最新文章

  1. python基础语法第10关作业-Python基础语法习题一
  2. mysql 优化表 3000万_mysql优化:专题三、关于单表查询,可以这么优化
  3. 防重 Token 令牌如何实现幂等性?
  4. Jerry Wang的CRM中间件培训 Middleware
  5. SAP UI5在本地运行和部署到服务器后运行的差异
  6. 配置 Powerline 到 Vim
  7. vml的简易画板_2
  8. Matlab【基础】【02】 将APP打包生成可执行EXE文件
  9. [C++]各编译器对C++11的支持比较
  10. ajax加php做的简单登录注册,简单示例AJAX结合PHP代码实现登录效果代码
  11. 基于java的教材管理_基于JAVA Web教材管理系统设计与实现.doc
  12. 腾讯技术分享:GIF动图技术详解及手机QQ动态表情压缩技术实践
  13. 电子电路:电流镜电路
  14. 《数据结构》实验报告四:串的模式匹配(BF算法、KMP算法)
  15. matlab 股,用Matlab来做三种股票的投资模型
  16. 阿里巴巴 DevOps 转型后的运维平台建设
  17. 【白话设计模式01】小良买了卡带游戏机(策略模式)
  18. Node.js搭建本地HTTP服务器(微信小程序)
  19. uniapp微信小程序和打包app的分享功能
  20. 10w字!前端知识体系+大厂面试笔记(工程化篇)

热门文章

  1. 关于docker remote api未授权访问漏洞的学习与研究
  2. Drupal8 社区文档之主题文件夹结构
  3. Cadence17.4操作经验
  4. 职业规化---------制订目标
  5. 什么是企业中台?企业为什么要建中台?企业如何建设中台?
  6. 一级造价师学习难点详细解析
  7. Windows Event 事件ID介绍
  8. 伦敦银,基本面投资分析技巧
  9. VBScript脚本简单入门详解
  10. VBScriptVBS(一)VBScript的简介、优缺点介绍、VBS的用法