4

我正在寻找一种解决方案,在一个 cmake 项目中编译并在 Jenkins 下发布的所有 C 源文件中进行代码覆盖率统计。

我使用 CMake 2.8.9、gcovr 3.1、Jenkins 1.564 并尝试了许多不同版本的 gcc/gcov(4.7.2 和 >= 4.8.0)。

据我所知,我有两种不同的解决方案:

一方面,使用 gcovr 会导致可在 jenkins 下发布的 cobertura xml 文件,但我未能考虑到覆盖率统计中未发现的文件。这是因为尽管存在 .gcno(但不存在 .gcda),但 gcov 并未考虑未经测试的文件,实际上没有为仅 .gcno 文件生成 .gcov 文件,而是 gcov 打印“正在删除 ...”消息。我怀疑 gcov 已经改变了它的行为,以便 gcovr 不再处理未经测试的文件(但我从未见过它工作),但是我无法找到正确版本的 gcc/gcov 并且我尝试了很多(4.7.2 和>= 4.8.0)。

另一方面,Cmake 会考虑未经测试的文件计算正确的统计数据,但无法生成要在 jenkins 上发布的 cobertura 报告...

我需要 gcovr 中的解决方法或 cmake 覆盖到 cobertura xslt 或可以解决此问题的所有其他选项。

非常感谢您的建议

皮埃尔

4

0 回答 0