Dev C开发环境下的单元测试覆盖率问题

一般认为单元测试是一种白盒测试,覆盖率则是白盒测试的重要统计指标。Windows平台下常见的测试覆盖率统计工具是rational purify,可惜是要付费的(D版不在讨论范围之内)。GNU GCC编译工具集提供了测试覆盖率的解决方案——GCOV,基于此想到了一种在windows环境下测试覆盖率的解决方法。

windows环境下的gcc版本可以多种渠道获得,最直接的方法是去gnu的网站上下载,但最方便的方法是安装Dev C(集成mingw),还有一种方法是安装cygwin。选择Dev C不仅是因为它集成了mingw,更重要的是因为它是一个IDE。

怎样使用gcc的测试覆盖率统计功能可以在网上找到不少资料。这里也简单重复一下,大致分这么几步:

  1. 编译时带上两个参数-ftest-coverage -fprofile-arcs,得到.gcno。如果版本比较老得到的是.bb和.bbg。
  2. 链接时带上-lgcov(gcc4以后可以不用)
  3. 执行程序后,得到.gcda。如果版本比较老得到的是.da
  4. 使用GCOV得到覆盖率数据。GCOV得到的数据可能不太好阅读,可以使用LCOV(http://ltp.sourceforge.net/coverage/lcov.php )工具集将文字数据转换成HTML版本的图形数据。

上面这些步骤对gcc的各种平台版本都是一样的。

在使用mingw版本gcc时遇到了一点小问题。以前版本在测试覆盖率时得到的中间文件是.bb/.bbg和.da,而mingw版本得到的是.gcno和.gcda,后经确认应该是gcc版本新旧导致(早一点的cygwin得到的结果只是前面那个)。新的输出文件lcov不能很好识别(网上有人说lcov的CVS上有这个patch,但我访问不了),需要先用gcov生成结果,然后再用lcov来分析。

技术问题都解决之后剩下的就是怎么与dev c集成了。

增加编译和链接选项很容易,在Tools->Compile Options里修改即可。

自动统计覆盖率也应该很容易,因为dev c可以自定义命令。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值