2017-02-05 39 views

回答

0

EclEmma - 是一個基於Java的代碼覆蓋圖書館Eclipse插件叫做JaCoCo執行Java字節碼的分析。由JaCoCo can be found in its documentation提供的覆蓋計數器的描述。正如你可以看到它 - JaCoCo因此EclEmma提供

  • 指令覆蓋
  • 分支覆蓋
  • 線覆蓋
  • 和圈複雜度

不知道你所說的節點覆蓋範圍,我猜你稱之爲邊緣覆蓋 - 是分支覆蓋。

關於條件覆蓋 - Wikipedia says

if (a && b) { /* ... */ } 

條件覆蓋可以通過兩種測試a=true, b=false滿足,a=false, b=true

什麼似乎有點Java中的情況下,怪異,其中&&是短期電路運算符 - 第二次測試不能觸發檢索「b」的值。

關於路徑覆蓋 - JaCoCo不提供它,有什麼可以使用下面的示例來說明:

void fun(boolean a, boolean b) { 
    if (a) { /* ... */ } 
    if (b) { /* ... */ } 
} 

不算例外有通過這個方法4點的路徑。因此,對於全路徑覆蓋,將需要4個測試 - a = true, b = true,a = true, b = false,a = false, b = truea = false, b = false。然而JaCoCo和EclEmma會在2次測試後報告100%覆蓋率 - a = true, b = truea = false, b = false