2013-02-01 18 views
1

有沒有一種方法可以根據方法/功能級別上的循環複雜度等複雜度比率來收集/報告單元測試覆蓋率?測量循環複雜度函數/方法的單位代碼覆蓋率?

原因/意圖是提供一個可衡量的度量標準,以顯示基於複雜性具有較高缺陷機率的任何區域實際上都有適當的單元測試覆蓋率(即遠離「100%」或「80%」的度量)通過將度量更改爲「100%的圓形複雜度> = 10」)。

我的用例目前是Java/junit,達到同樣意圖的不同方法也是有幫助的(不必完全是基於Cyclo的方法/函數,但是類似的度量類型)。

編輯:如果有一個代碼覆蓋率工具具有Java和.NET類似的功能,那將是驚人的。

謝謝! -Darren

+0

重複的: http://stackoverflow.com/questions/13399514/how-to-check-code-coverage-with-tests-for-methods-with-specified-level-of-comple – dhartford

回答

1

聲明:我是Atlassian的Clover開發人員。我看到你標記你的問題與「三葉草」,所以我回答:-)

在三葉草,你可以通過兩種方式(也將它們組合起來)做到這一點:

1)可以定義上下文過濾器和不儀器方法與圈複雜< = N.見<三葉草設置maxComplexity =「NN」 >

2)您可以定義自定義指標,例如乘以覆蓋值(或更好 - 在「揭示'價值)的圈複雜性。這樣的指標會顯示出複雜的,未被發現的方法,就像那些簡單的,未被覆蓋的方法一樣重要。參見<三葉草報告>/<列>

噢。還有一件事。 Clover會自動爲您做這件事:-)在HTML報告中,您可以看到頂級項目風險指標的「標籤雲」,它採用覆蓋率+複雜度來展示應用程序最具潛力的關鍵部分。

參考文獻: