我在Jenkins上设置了gcov代码覆盖工具。
这很好用,但我在处理输出颜色代码时遇到了麻烦。 每条线的'命中数'是核心,但是当其他线为红色时,某些线是绿色的,我不知道为什么。
示例:
请注意,setYear方法全部为绿色,并且调用了13次(ctor + setDateAAMMJJ中的12次,如屏幕截图所示)
答案 0 :(得分:2)
如果您查看cobertura-plugin
on github的源代码,您会看到:
table.source tr.coverPart td.hits, table.source tr.coverNone td.hits {
background-color: #fdd;
font-weight: bold;
}
和
table.source tr.coverPart {
background-color: #ffd;
}
#fdd
是红色,#ffd
是黄色您应该可以使用浏览器的开发者工具'或者'检查员'函数来查看应用了哪个类。
最左侧的黄色表示源代码被部分覆盖,这意味着您可能在被调用的函数中没有100%的覆盖率。
我能想到的另一个案例(此时的纯粹推测)是某些优化会破坏你的陈述覆盖范围;检查你的编译标志。
如果你保存了数据(lcov文件),你应该可以使用genhtml
生成报告并进行比较。
答案 1 :(得分:1)
不知道这是否适用于您,但似乎相关。 在我的情况下它是红色的,因为分支覆盖不是100%。 使用gcovr生成xml时,它还会添加分支覆盖数据。
可以覆盖所有线条但不覆盖所有分支。 我的分支机构有各种各样的问题。
这些帖子中描述了一些内容。
What is the branch in the destructor reported by gcov?
仍在寻找解决此类问题的方法..