2012-02-10 82 views
3

我有用於構建服務器的NDepend版本,並自動生成NDepend報告。因此,每天晚上構建都會執行它,並生成NDepend報告/ XML。我現在想要做的是跟蹤一些指標作爲時間的函數。用NDepend查看代碼度量標準的趨勢

因此,例如,在x軸上有一個特定類型或命名空間的圖形,例如傳入耦合,在y軸上有時間可能會很好。我知道我可以比較兩個NDepend構建,並且有代碼和度量差異,但是我期望做的是比較N構建中相同的單個度量或度量來查看當前的趨勢。

我有點想當然沒有一個工具可以做到這一點,而且我必須自己推出,但如果那裏有一個,我一定會喜歡聽到它之前投入時間。那麼,NDepend本身是否支持這樣的事情,或者是否存在某種我可以使用的實用工具?

我也開到了這將做到這一點,除了NDepend的其他技術的建議,雖然我對NDepend的強烈偏好,由於已經有投資於它,熟悉它是如何工作的。

在此先感謝。

回答

6

使用NDepend,您可以編寫Code Query over LINQ (CQLinq)以通過任何代碼度量標準來匹配進化。例如,您可以從查詢開始:

from t in JustMyCode.Types 
where t.IsPresentInBothBuilds() && 
     t.CodeWasChanged() 
let tOld = t.OlderVersion() 

let newLoC = t.NbLinesOfCode 
let oldLoC = tOld.NbLinesOfCode 
let newCC = t.CyclomaticComplexity 
let oldCC = tOld.CyclomaticComplexity 
let newCov = t.PercentageCoverage 
let oldCov = tOld.PercentageCoverage 
where newLoC > oldLoC || newCC > oldCC || newCov < oldCov 
select new { t, newLoC, oldLoC, newCC, oldCC, newCov, oldCov } 

...並在Visual Studio中獲得即時結果。這種規則可以合併到您的CI TFS build process中,也可以在HTML+javascript report中顯示。提供

Code metric evolution match

若干默認代碼規則,以限制通過代碼度量的趨勢:

+0

感謝您的反饋。我可能會做的是編寫我自己的解析器並顯示爲單獨的程序集,以便我可以交換使用API​​的某些內容。 – 2012-02-12 16:50:47