使用gcov生成增量覆盖率报告

lcov可以统计指定目录下的所有代码覆盖率,当前有这样一个诉求:有两个版本的代码:v1和v2,想统计用例v2相对v1增加及修改的代码的覆盖情况,以确认针对这部分代码设计的用例是有效的。然而lcov不支持直接生成增量代码覆盖率,故需要使用到addlcov工具,addlcov可以根据对比两个目录下文件的差异列表,对指定代码形成覆盖率数据,使用方法如下:


1. 使用diff命令生成文件差异列表

diff -r  -N -x ".git" -x "*.gcov" -u > diff.txt

其中是v1版本代码路径、是v2版本代码路径,生成的diff.txt中包含的就是v2相比v1的增量代码


2. 使用addlcov生成增量代码覆盖率文件

addlcov --diff diff.txt -o --strip --path

其中为之前统计的v2版本上的全量覆盖率;为输出的增量覆盖率info文件;是要截取的代码深度;是v2版本源码

这里的再做一下解释:源码路径一般比较长,假设我们源码路径是a/b/c/d/e,这里的depth取值3则后续生成报告的根目录就是d了,前面三级就被屏蔽掉了


3. 使用genhtml生成html格式的覆盖率报告

genhtml -o

其中是想要生成的报告路径名称,是通过上一步生成的覆盖率文件

你可能感兴趣的:(Android)