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.cpp
,xyz.hpp.gcov
报告的第 24 行计数为零,第 35 行计数为 7。因此,不是累积报告信息,第 24 行(构建)计数为 5,行计数为 7 35(数据),它每次都替换,因此所有计数都被重置。xyz.hpp.gcov
我理解为什么这是默认行为,但我似乎无法覆盖它。如果我无法以编程方式累积 .gcov 报告,我将不得不手动比较,例如,十几个不同xyz.hpp.gcov
的报告,以评估覆盖率。
看起来 LCOV 能够做到这一点,但在我目前的工作文化中安装新软件需要数周时间。
提前感谢您的帮助。