我正在寻找一个C++代码覆盖工具,在多个服务器环境下表现良好,并且在Windows和Linux上都没有许可问题(如果非免费)。
我已经做了一些研究,发现了两个免费的工具:Covtool和gcov。这些工具有什么缺点或者有其他建议吗?
我正在寻找一个C++代码覆盖工具,在多个服务器环境下表现良好,并且在Windows和Linux上都没有许可问题(如果非免费)。
我已经做了一些研究,发现了两个免费的工具:Covtool和gcov。这些工具有什么缺点或者有其他建议吗?
尽管我不记得代码覆盖率工具研究的所有详细信息,但我似乎记得以下有关gcov和covtool的内容:
我们需要支持Windows/Linux和gcc/MSVC,并选择了商业付费的BullseyeCoverage。 我们估计,改变我们的构建系统以使用免费产品会比支付BullseyeCoverage许可证更花费时间和金钱。他们的支持非常好,反应及时,我对工具的质量非常满意。
一些好处:
使用Gcov工具配合LCOV工具。LCOV工具是gcov的图形化前端。
OovAide程序是一个免费的开源工具,它可以对源文件进行仪器化处理,并生成代码覆盖率统计信息,同时显示哪些行从未运行。它是线程安全和高效的。
它相当透明,意味着它所产生的代码都是可见的,如果有特殊需求,可以修改为您的项目进行定制。
源代码修改的基本思想是,在CLang处理的AST中的每个语句组之后插入一个宏。这通常是在条件语句或大括号之后。该宏可以被修改,但默认情况下,它会在数组中的偏移量处增加一个值。我还修改了它,使其在某些情况下写入文件,从而允许执行程序跟踪。
一个问题可能是它的构建系统受限,必须能够使用CLang进行构建。它可能无法在某些类型的项目上工作。但由于它只是通过插入宏来修改源代码,因此可以使用它来修改源代码,然后使用现有的构建系统来构建修改后的源代码。
这里有一份描述它如何工作的文档。http://oovaide.sourceforge.net/articles/TestCoverage.html
AQTime 是 Delphi/C++Builder 用户中很受欢迎的工具,但像其他推荐的工具一样,它并不是免费的。