Android 项目进行了模块化,手工运行完测试用例之后,jacoco 只统计一个模块下面的代码覆盖,其它模块的统计出来的数据都是为 0。

build.gradle:

apply plugin: "jacoco"

def coverageSourceDirs = ['../app/src/']

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/product/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('$$', '$'))

}

}

}

}

统计代码如下:

OnCreate:

String SDCARD_PATH = Environment.getExternalStorageDirectory().getPath();

String DEFAULT_COVERAGE_FILE_PATH = SDCARD_PATH + "/coverage.ec";

File file = new File(DEFAULT_COVERAGE_FILE_PATH);

if (! file.exists()) {

try {

file.createNewFile();

} catch (IOException e) {

e.printStackTrace();

}

}

OnDestroy:

public void generateCoverageReport() {

String SDCARD_PATH = Environment.getExternalStorageDirectory().getPath();

String DEFAULT_COVERAGE_FILE_PATH = SDCARD_PATH + "/coverage.ec";

Log.d("generateCoverageReport", "generateCoverageReport():" + DEFAULT_COVERAGE_FILE_PATH);

OutputStream out = null;

try {

out = new FileOutputStream(DEFAULT_COVERAGE_FILE_PATH, false);

Object agent = Class.forName("org.jacoco.agent.rt.RT").getMethod("getAgent").invoke(null);

out.write((byte[]) agent.getClass().getMethod("getExecutionData", boolean.class).invoke(agent, false));

} catch (Exception e) {

Log.d("generateCoverageReport", e.toString(), e);

} finally {

if (out != null) {

try {

out.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

覆盖数据都有,只是 HTML 文件显示代码都未运行,可以确认 MainActivity 是有运行的,但并未统计出来。求大神解答

android统计库,android jacoco 统计多模块相关推荐

  1. ( 持续更新,目前含 200+ 工具类 ) DevUtils 是一个 Android 工具库, 主要根据不同功能模块,封装快捷使用的工具类及 API 方法调用。

    DevUtils GitHub About ( 持续更新,目前含 200+ 工具类 ) Roadmap DevUtils 是一个 Android 工具库,主要根据不同功能模块,封装快捷使用的工具类及 ...

  2. android 自定义库,Android自定义Log库

    背景 我们在开发的时候肯定会打一些Log,特别是在调试代码或者bug的时候,我们都会打一些Log日志来记录,但是当我们发布正式版本的时候,尼玛,要一行一行的去掉,这就尴尬了. 懵逼状态 励志封装Log ...

  3. libiconv android,iconv库 android ndk可运行

    [实例简介] 是一个iconv库,能够在android上编译运行,生成SO库. [实例截图] [核心代码] cb24acd8-e96e-4981-89f0-8227dc4cc0c4 └── iconv ...

  4. android 函数库,Android Studio 实现开源函数库的离线依赖-greenDAO 3 为例

    @author ASCE1885的 Github 简书 微博 CSDN 知乎 本文由于潜在的商业目的,不开放全文转载许可,谢谢! nami.png-599.1kB Android 应用开发中,经常需要 ...

  5. android tv 库,Android TV Leanback 简介

    TV 纵向滑动列表介绍 构建滑动列表的几种方式: ListView / RecyclerView 自定义LinearLayout/ScrollView/ViewGroup 采用leanback库 go ...

  6. (持续更新, 目前含100+工具类) DevUtils 是一个 Android 工具库

    DevUtils Github About (持续更新, 目前含100+工具类) DevUtils 是一个 Android 工具库, 主要根据不同功能模块,封装快捷使用的工具类及 API 方法调用. ...

  7. Android 第三方库常用混淆

    ButterKnife implementation 'com.jakewharton:butterknife:9.0.0' annotationProcessor 'com.jakewharton: ...

  8. Android系统架构-----Android的系统体系架构

    一.Android的系统体系结构 Android其本质就是在标准的Linux系统上增加了Java虚拟机Dalvik,并在Dalvik虚拟机上搭建了一个JAVA的application framewor ...

  9. Android ui 单元测试 覆盖率,Android单元测试/Ui测试+JaCoCo覆盖率统计

    Android单元测试/Ui测试+JaCoCo覆盖率统计 参考资料1 参考资料2 背景说明 单元测试 从源代码着手,对源码中的最小可测试单元进行检查和验证,在对源代码有较深的理解下,编写测试单元,工作 ...

最新文章

  1. 《DSP using MATLAB》示例Example7.22
  2. python入门到精通需要学多久-Python零基础入门到精通:一个月就够了
  3. python少儿编程 在线课程-石家庄Python人工智能编程
  4. maven package和install
  5. JVM--类加载机制
  6. php返回json套数组_教你PHP怎么不用框架写优雅的中小网站
  7. delphi制作上下开幕效果_显示产业国际盛会开幕,广州新型显示产值将突破2500亿...
  8. SEAndroid语法介绍
  9. Python动态页面抓取超级指南
  10. 话单数据仓库搭建(1)- 数仓概念及数据采集
  11. 嵌入式linux 面试题
  12. 实战NLP beginner任务一:基于机器学习的文本分类
  13. 领航机器人广告段子_医院机器人物流科技宣传广告语
  14. 深入理解java虚拟机——自动内存管理
  15. 前端踩坑(八)前端使用Moment 时间格式化错误
  16. 模电笔记 差分放大器1
  17. MT2014——打靶
  18. 2002111126 邱新辉
  19. 【银河麒麟V10】【服务器】IO调度算法与性能分析
  20. 使用Qt创建一个C语言工程

热门文章

  1. 大数据隐私保护技术之脱敏技术
  2. MAC 系统下允许NTFS磁盘读写
  3. 当配置 DispatcherServlet拦截“/”,SpringMVC访问静态资源的三种方式
  4. 电商刮刮卡开发基础准备
  5. 简单DNS服务器架设
  6. 解决CHROME中画布中无法显示图片的方法
  7. Mysql CMAKE编译参数详解
  8. Word 2007怎样生成目录
  9. centos7配置静态ip地址
  10. 删除ELK中的数据。。