c语言gcno文件位置,C 代码覆盖率

C 代码覆盖率

2018-11-28 Wednesday

我们已经提供了一些测试用例,但是这些测试用例的好坏如何评估?是否已经覆盖了所有的函数?函数中的分支以及边界条件是否都已经覆盖?

这就需要通过代码覆盖率进行查看,这里简单介绍其使用方法。

简介

在 GCC 中,提供了一个代码覆盖率的分析工具 gcov ,除此之外,还可以使用 lcov genhtml 等工具生成最终的展示页面。

CentOS 中可以通过如下命令安装。

# yum install --enablerepo=epel lcov

使用

在使用 gcc 或者 g++ 后面添加参数 --fprofile-arcs --ftest-coverage ,必须同时在编译器和链接器上设置,在 Makefile 里面可以加在 CFLAGS 和 LDFLAGS 上。

编译完成之后,会生成相关的 *.gcno 文件,运行之后生成 *.gcda 文件,然后可以使用 gcov *.c 生成 *.c.gcov 代码覆盖信息,参数如下。

不过这个是文本的,可以将生成的文件 main.c.gcov 通过编辑器打开,会发现在代码前有很多的符号标记,简介如下:

##### 没有被执行过。

- 不计入统计。

N 被调用执行的此时。

文件文件观察起来不太方便,可以通过 lcov 生成图形化的代码覆盖数据。

$ lcov -d . -t 'Main Test' -o 'main_test.info' -b . -c

会生成一个 main_test.inf

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值