我正在寻找一个解决方案,在一个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文件,但我未能在覆盖统计中考虑未覆盖的文件。这是因为gcov不考虑未经测试的文件,尽管存在.gcno(但不是.gcda)确实没有为.gcno文件生成.gcov文件,而是gcov打印“正在删除...”消息。我怀疑gcov改变了它的行为,以便gcovr不再使用未经测试的文件(但我从未看到它工作),但是我无法找到正确版本的gcc / gcov并且我尝试了很多(4.7.2和> = 4.8.0)。
另一方面,Cmake计算一个正确的统计数据,考虑未经测试的文件,但不能生成cobertura报告,以便在詹金斯发表......
我需要在gcovr或comaura xslt或其他可以解决此问题的选项的cmake覆盖范围内解决方法。
非常感谢你的建议
皮尔