C语言项目代码覆盖率实践

本文介绍了在C语言项目中如何使用gcc自带的gcov/lcov工具包进行代码覆盖率实践,包括编译选项设置、生成.gcda文件、使用gcov生成.gcov文件、利用lcov生成.info文件和通过genhtml生成HTML报告,从而实现对C语言代码的覆盖率分析。
摘要由CSDN通过智能技术生成

去年换工作到一家做交易的公司,动辄都是成百上千万的交易额,核心系统使用C语言开发的,但是没有自动化测试工具。也许上家公司GTest给惯坏了,没有自动化测试总感觉像是在裸奔……于是,利用零散的空余时间,带着一个外包在已有的手工测试工具的基础上,整了一个自动化测试工具出来。工具做好之后,补充了一定数量的测试用例后,开始考虑覆盖率的问题。网上搜索一番,原来gcc自带的gcov/lcov工具包已经实现了覆盖率生成,下面就是一番实践后的一个小结。

1、编译选项:-fprofile-arcs   -ftest-coverage

使用上述编译选项编译、链接应用程序。其中,‘ftest-coverage’用以生成.gcno文件,‘fprofile-arcs’用以后续执行应用程序时生成.gcda文件。

2、执行应用程序生成.gcda文件

3、执行'gcov *.c'命令生成.gcov文件

gcov使用前面两步生成的.gcno文件和.gcda文件生成.gcov文件,如有嵌套子目录,则每个目录下的源文件都需要生成.gcov文件。

其实,.gcov文件已经包含了代码的覆盖信息,但不是图形化的数据,看起来不直观,所以需要使用lcov工具以生成图形化的统计数据。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值