Android中根据coverage.ec文件生成报告
关于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文件生成报告相关推荐
- python中__init__.py的用法,执行指定的多个.py文件生成报告。简单粗暴1
这里以执行指定的多个test.py文件生成报告为例 __init__.py文件用于组织包(package). 简单来说,包是含有python模块的文件夹.一个python模块(module)为一个py ...
- 解决 无法读取到 /data/data/yourPackageName/files/coverage.ec 文件
参考 https://testerhome.com/topics/8554 这篇文章 jacoco生成coverage.ec 在/data/data/yourPackageName/files/ 下, ...
- Android中对Log日志文件的分析
Android中对Log日志文件的分析 如何分析和研究Log文件 ,如何看日志信息 Log 在android中的地位非常重要,要是作为一个android程序员不能过分析log这关,算是android没 ...
- android raw文件作用,Android 中raw和assets文件夹的区别
Android 中raw和assets文件夹的区别 发布时间:2020-09-25 08:40:41 来源:脚本之家 阅读:103 作者:lqh Android 中raw和assets文件夹的区别 以 ...
- android 文件删除命令大全,Android中删除sdcard里文件的命令
Android中删除sdcard里文件的命令 有时我们需要删除android模拟器或手机上的sd卡文件,特别是模拟器上的,这时我们就需要借助于一些命令来帮助我们删除文件. 复制代码 代码如下: #重新 ...
- android 大文件加密,如何在android中加密大视频文件
我有一个应用程序,我正在使用该代码来解密已加密的文件.文件位置是"/mnt/sdcard/myfolder/test.mp4". test.mp4文件大小约为20MB.如何在and ...
- Android中对Log日志文件的分析[转]
一,Bug出现了, 需要"干掉"它 bug一听挺吓人的,但是只要你懂了,android里的bug是很好解决的,因为android里提供了LOG机制,具体的底层代码,以后在来分析,只 ...
- Android开发——Android中的二维码生成与扫描
0. 前言 今天这篇文章主要描述二维码的生成与扫描,使用目前流行的Zxing,为什么要讲二维码,因为二维码太普遍了,随便一个Android APP都会有二维码扫描.本篇旨在帮助有需求的同学快速完成二维 ...
- Android中的二维码生成与扫描
转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/51260428 本文出自:[顾林海的博客] 前言 月底离开公司,准备月底 ...
最新文章
- python基础语法第10关作业-Python基础语法习题一
- mysql 优化表 3000万_mysql优化:专题三、关于单表查询,可以这么优化
- 防重 Token 令牌如何实现幂等性?
- Jerry Wang的CRM中间件培训 Middleware
- SAP UI5在本地运行和部署到服务器后运行的差异
- 配置 Powerline 到 Vim
- vml的简易画板_2
- Matlab【基础】【02】 将APP打包生成可执行EXE文件
- [C++]各编译器对C++11的支持比较
- ajax加php做的简单登录注册,简单示例AJAX结合PHP代码实现登录效果代码
- 基于java的教材管理_基于JAVA Web教材管理系统设计与实现.doc
- 腾讯技术分享:GIF动图技术详解及手机QQ动态表情压缩技术实践
- 电子电路:电流镜电路
- 《数据结构》实验报告四:串的模式匹配(BF算法、KMP算法)
- matlab 股,用Matlab来做三种股票的投资模型
- 阿里巴巴 DevOps 转型后的运维平台建设
- 【白话设计模式01】小良买了卡带游戏机(策略模式)
- Node.js搭建本地HTTP服务器(微信小程序)
- uniapp微信小程序和打包app的分享功能
- 10w字!前端知识体系+大厂面试笔记(工程化篇)