使用Cobertura输出Gcov的颜色代码

Mok*_*kaT 5 continuous-integration cobertura gcov jenkins gcovr

我在Jenkins上设置了gcov代码覆盖工具.

这工作正常,但我在处理输出颜色代码时遇到了麻烦.每条线的'命中数'是核心,但是当其他线为红色时,某些线是绿色的,我不知道为什么.

示例:

在此输入图像描述

请注意,setYear方法全部为绿色,并且调用了13次(ctor + setDateAAMMJJ中的12次,如屏幕截图所示)

dno*_*zay 2

如果你查看cobertura-plugingithub 上的源代码,你会看到:

table.source tr.coverPart td.hits, table.source tr.coverNone td.hits {
    background-color: #fdd;
    font-weight: bold;
}
Run Code Online (Sandbox Code Playgroud)

table.source tr.coverPart {
    background-color: #ffd;
}
Run Code Online (Sandbox Code Playgroud)
  • #fdd是红色,
  • #ffd是黄色

您应该能够使用浏览器的“开发人员工具”或“检查器”功能来查看应用了哪个类。

这是什么意思?

最左边的黄色表示源代码被部分覆盖,这意味着正在调用的函数可能没有 100% 的覆盖率。

我能想到的另一种情况(此时纯粹是猜测)是某些优化正在破坏您的语句覆盖范围;检查你的编译标志。

如果您保留数据(lcov 文件),您应该能够用来genhtml生成报告并进行比较。