如何在JaCoCo覆盖率报告中排除org开头的无关类元素?
AOSP 配置JaCoCo覆盖率排除无关org类的方法
方法1:在目标模块的Android.bp中配置过滤规则
在目标模块的构建配置中添加jacoco排除规则,该方式永久生效,无需每次编译加参数:
java_library { name: "你的目标业务模块名称", // 保留原有其他配置不变 jacoco: { exclude_filter: [ "org.*", // 可按需添加其他需要排除的系统包路径,例如 "android.*"、"com.google.*" 等 ], }, }
方法2:编译时添加环境变量过滤
编译命令中新增EXCLUDE_JACOCO_PATTERN参数直接过滤org开头的包:
EMMA_INSTRUMENT=true EMMA_INSTRUMENT_FRAMEWORK=false EMMA_INSTRUMENT_STATIC=true ANDROID_COMPILE_WITH_JACK=false SKIP_BOOT_JARS_CHECK=true EXCLUDE_JACOCO_PATTERN="org.*" -f build/core/main.mk 你的目标模块名称
方法3:生成报告阶段手动过滤
如果已经拿到覆盖率原始数据文件,可在调用JaCoCo生成报告的命令中添加排除规则:
java -jar jacococli.jar report 你的覆盖率数据文件.ec \ --classfiles 目标模块编译输出的class文件目录 \ --html ./coverage_result \ --exclude "org/**"
注:你使用的0.7.10版本JaCoCo完全兼容上述三种过滤方案,优先推荐第一种修改Android.bp的方案,稳定性最高。
内容的提问来源于stack exchange,提问作者Irene
相关产品推荐
相关产品推荐

