导语
最近在写Android端单元测试,自然离不了代码覆盖率,代码覆盖率是衡量测试用例的的重要指标。文章介绍覆盖率工具选型,相关概念介绍,以及在实际项目中如何生成覆盖率数据。
工具选型
工具 | Jacoco | emma |
---|---|---|
原理 | 使用 ASM 修改字节码 | 修改 jar 文件,class 文件字节码文件 |
覆盖粒度 | 行,类,方法,指令,分支 | 行,类,方法,基本块,指令,无分支覆盖 |
插桩 | on the fly、offline | on the fly、offline |
生成结果 | xml,html,二进制格式 | html、xml、txt,二进制格式 |
缺点 | 需要源代码 | 需要源代码 |
性能 | 快 | 小巧 |
维护状态 | 持续更新中 | 停止维护 |
对比了emma和jacoco,jacoco覆盖粒度相对全面,且有持续更新,gradle配置方便,最终选择了jacoco。
下面开始介绍Jacoco工具
Jacoco工具介绍
Jacoco 包含了多种粒度的覆盖率计数器,包含