2010-06-11 142 views
3

我正在寻找C++代码覆盖率工具,它可以很好地在mutli服务器安装程序中以及在没有许可问题(如果不是免费的)上在Windows和Linux上运行。C++代码覆盖率工具

我已经做了一些研究,并找到2个免费工具:Covtool和gcov。这些或其他建议有什么不利之处?

+0

[GCov/LCov文章](http://bobah.net/d4d/tools/code-coverage-with-gcov)。上次我检查GCC仪器装置并不是线程安全的,所以如果你打算在单元测试之外的任何东西上运行它,那么值得一提的是特别值得一提的是。 – bobah 2015-05-15 05:02:19

回答

1

虽然我不记得我的研究为代码覆盖工具的所有细节,我似乎记得的gcov和covtool如下:

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

我们需要为Windows/Linux和GCC/MSVC和settl支持编辑BullseyeCoverage这是商业和非免费。我们估计,使用免费产品更改我们的构建系统会比花费BullseyeCoverage许可证花费更多。他们的支持非常好,反应迅速,我对该工具的质量非常满意。

一些好处:

  • 大查询支持无论是在命令行和GUI形式
  • 要求没有改变我们的编译系统
  • 对双方的影响最小编译时间和运行时间
  • 提供工具与CruiseControl和Hudson等构建机器人进行集成
  • 用于可视化和导航coverage的好用GUI结果
0

AQTime对于Delphi/C++ Builder用户很流行,但和其他建议一样,它不是免费的。

+0

Thankyou。任何免费的C++代码覆盖工具推荐? – prattipam 2010-06-15 20:43:56

0

OOVAide程序是一个免费的开源工具,它将测量源文件 并生成代码覆盖率统计信息以及显示哪些行从未运行过 。它是线程安全和高效的。

它是相当透明的,意味着它生成的代码都是可见的 ,如果需要特殊需求,可以修改您的项目。

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

一个问题可能是它的构建系统是有限的,并且必须能够使用CLang构建的 。它可能不适用于某些类型的项目。但由于 只是通过插入宏修改源代码,因此可以用 来修改源代码,然后使用现有的构建系统以 构建修改后的源代码。

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

0

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