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

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


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

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

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


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

addlcov --diff <full_cov_file> diff.txt -o <add_cov_file> --strip <depth> --path <new_src_path>

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

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


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

genhtml -o <report_dir> <add_cov_file>

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

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值