C++代码覆盖率工具

3

我正在寻找一个C++代码覆盖工具,在多个服务器环境下表现良好,并且在Windows和Linux上都没有许可问题(如果非免费)。

我已经做了一些研究,发现了两个免费的工具:Covtool和gcov。这些工具有什么缺点或者有其他建议吗?


GCov/LCov文章。上次我检查时,GCC工具箱不是线程安全的,因此如果您计划在除单元测试之外的任何东西上运行它,最好专门搜索一下。 - bobah
4个回答

1

尽管我不记得代码覆盖率工具研究的所有详细信息,但我似乎记得以下有关gcov和covtool的内容:

  • 它们需要自定义修改您的构建系统
  • 它们需要自定义编译器标志和/或链接步骤
  • 它们都提供最小化输出和格式

我们需要支持Windows/Linux和gcc/MSVC,并选择了商业付费的BullseyeCoverage。 我们估计,改变我们的构建系统以使用免费产品会比支付BullseyeCoverage许可证更花费时间和金钱。他们的支持非常好,反应及时,我对工具的质量非常满意。

一些好处:

  • 命令行和GUI形式都有出色的查询支持
  • 不需要对我们的构建系统进行任何更改
  • 对编译时间和运行时间影响很小
  • 提供与构建机器人(如CruiseControl和Hudson)集成的工具
  • 良好的GUI可视化和覆盖结果导航

0

使用Gcov工具配合LCOV工具。LCOV工具是gcov的图形化前端。


0

OovAide程序是一个免费的开源工具,它可以对源文件进行仪器化处理,并生成代码覆盖率统计信息,同时显示哪些行从未运行。它是线程安全和高效的。

它相当透明,意味着它所产生的代码都是可见的,如果有特殊需求,可以修改为您的项目进行定制。

源代码修改的基本思想是,在CLang处理的AST中的每个语句组之后插入一个宏。这通常是在条件语句或大括号之后。该宏可以被修改,但默认情况下,它会在数组中的偏移量处增加一个值。我还修改了它,使其在某些情况下写入文件,从而允许执行程序跟踪。

一个问题可能是它的构建系统受限,必须能够使用CLang进行构建。它可能无法在某些类型的项目上工作。但由于它只是通过插入宏来修改源代码,因此可以使用它来修改源代码,然后使用现有的构建系统来构建修改后的源代码。

这里有一份描述它如何工作的文档。http://oovaide.sourceforge.net/articles/TestCoverage.html


0

AQTime 是 Delphi/C++Builder 用户中很受欢迎的工具,但像其他推荐的工具一样,它并不是免费的。


谢谢。有没有免费的C++代码覆盖率工具推荐? - prattipam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接