3

gcov 数据文件 (*.gcda) 在多个测试中累积计数。这是一件美妙的事情。问题是,我不知道如何让 .gcov 文件以与 .gcda 文件相同的方式累积。

我有一个大型项目(53 个标头,54 个 cpp),并且一些标头用于多个 cpp 文件。下面的例子被彻底简化了;如果需要,蛮力方法将需要数天的手动繁琐工作。

比如说我有xyz.hpp定义 xyz 类。第 24 行定义了build()构建 xyz 数据的方法,第 35 行定义了data()返回数据引用的方法。

假设我运行我的测试套件,然后执行 gcov on abc.cpp。该xyz.hpp.gcov报告的第 24 行(构建)计数为 5,第 35 行(数据)计数为零。现在我在 上运行 gcov def.cppxyz.hpp.gcov报告的第 24 行计数为零,第 35 行计数为 7。因此,不是累积报告信息,第 24 行(构建)计数为 5,行计数为 7 35(数据),它每次都替换,因此所有计数都被重置。xyz.hpp.gcov我理解为什么这是默认行为,但我似乎无法覆盖它。如果我无法以编程方式累积 .gcov 报告,我将不得不手动比较,例如,十几个不同xyz.hpp.gcov的报告,以评估覆盖率。

看起来 LCOV 能够做到这一点,但在我目前的工作文化中安装新软件需要数周时间。

提前感谢您的帮助。

4

0 回答 0