2015-02-10 99 views
5

我在Jenkins上设置了gcov代码覆盖工具。用Cobertura输出Gcov的颜色代码

这工作正常,但我有输入颜色代码的错误。 每条线的'点击数'是corect,但是其他线是红色的时候一些线是绿色的,我不知道为什么。

实施例:

enter image description here

注意,setYear方法是所有绿,称为13倍(构造函数+ 12 setDateAAMMJJ倍就可以在屏幕上帽看到)

+0

'setDateAAMMJJ'也许应该改名为'setDateYYMMDD' – dnozay 2015-03-13 02:38:52

+0

是的,这是英语和法语在一起。这很丑陋,但它是旧的代码部分,没有人想要触摸它。 – MokaT 2015-03-13 12:55:01

回答

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生成报告并进行比较。

+0

感谢您的回答。疯狂的事情是,两个红色函数的覆盖率都是100%,因为我们增加了2个单元测试,覆盖率是14次而不是12次,现在全部都是绿色的。这可能是一个小错误? genhtml生成相同的报告。 – MokaT 2015-03-13 13:00:19

+0

我也有这个问题,不知道,如果这是一个gcov,gcovr或cobertura问题 – Simon 2015-04-29 12:12:28

+0

我检查过。这不是cobertura,因为gcovr HTML导出是相同的。 – MokaT 2015-04-29 12:49:28

1

不知道这是否适用于您,但似乎相关。 在我的情况下,它是红色的,因为分支覆盖不是100%。 当使用gcovr生成xml时,它还会添加分支封面数据。

可以覆盖所有行但不覆盖所有分支。 林有各种问题与分支封面。

一些在这些帖子中描述。

Why gcc 4.1 + gcov reports 100% branch coverage and newer (4.4, 4.6, 4.8) reports 50% for "p = new class;" line?

What is the branch in the destructor reported by gcov?

还在寻找一种方式来解决这样的问题..