C ++代码覆盖工具

时间:2010-06-11 17:55:11

标签: java c++ c c++builder

我正在寻找c ++代码覆盖率工具,它在mutli服务器设置以及Windows和Linux上都很好,没有许可问题(如果非免费)。

我做了一些研究,发现了2个免费工具:Covtool和gcov。这些或任何其他建议的任何缺点?

4 个答案:

答案 0 :(得分:1)

虽然我不记得我的代码覆盖工具研究的所有细节,但我似乎记得关于gcov和covtool的以下内容:

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

我们需要支持Windows / Linux和gcc / MSVC,并确定商业和非免费的BullseyeCoverage。我们估计,用钱来改变我们的构建系统以使用免费产品比支付BullseyeCoverage许可证要花费更多。他们的支持非常好,响应迅速,我对该工具的质量非常满意。

一些好处:

  • 在命令行和GUI表单中都支持很好的查询
  • 我们的构建系统需要更改
  • 对编译时间和运行时间的影响最小
  • 提供与CruiseControl和Hudson等构建机器人集成的工具
  • 用于覆盖结果可视化和导航的漂亮GUI

答案 1 :(得分:0)

AQTime很受Delphi / C ++ Builder用户欢迎,但与其他建议一样,它不是免费的。

答案 2 :(得分:0)

OovAide程序是一个免费的开源工具,可以监控源文件 并生成代码覆盖率统计信息以及显示哪些行从不 跑。它是线程安全和高效的。

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

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

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

有一份文件描述了它在这里是如何运作的。 http://oovaide.sourceforge.net/articles/TestCoverage.html

答案 3 :(得分:0)

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