2015-02-10 132 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?

還在尋找一種方式來解決這樣的問題..