iT邦幫忙

DAY 12
2

使用Jenkins打造.Net CI Server系列 第 12

CI Server 12 - 整合FxCop報表

我們已經學會了如何使用FxCop來進行靜態程式碼分析,
接下來將要介紹如何將FxCop分析的結果整合到Jenkins上,
並且在每日建置的時候同時執行,
如此一來我們就可以每天追蹤程式碼的健康情況,
是否有按照.Net Framework Design Guide的原則來開發,
避免在專案開發完成之後才發現有大量的東西需要改善。
(我想大概九成九不會在改善了...)
※使用FxCopCmd進行靜態程式碼分析
在前一篇文章中我們介紹了如何使用GUI工具來分析,
但Jenkins並沒辦法執行GUI,
所以我們透過Visual Studio的FxCopCmd.exe來執行任務
(程式位置: C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\FxCopCmd.exe)

使用CommandLine語法來執行FxCop,參考以下指令

"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\FxCopCmd.exe" 
/file:"CI-Sample\bin\Debug\CI-Sample.dll" 
/rule:"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\Rules\DesignRules.dll" 
/out:FxCopReport.xml

/file - 代表要掃描的dll名稱,可以是檔案或資料夾,
若同時有多個dll,可以重複多次
/rule - 代表要掃描的規則,對象可以是檔案或資料夾,
若不指定代表全部預設的規則。
(上面的範例只掃描是否符合DesignRule)
/out - 靜態程式碼分析的結果檔

還有更多的CommandLine參數,請參考MSDN
http://msdn.microsoft.com/en-us/library/bb429449(v=vs.80).aspx

執行之後可以看到畫面

在資料夾中也產生結果檔案

※整合進Jenkins每日建置

  1. Jenkins專案首頁,進入設定畫面

  2. 找到Build區段,新增執行window batch command

  3. 使用指令執行FxCop程式碼分析,輸入以下指令

    "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\FxCopCmd.exe"
    /file:"CI-Sample\bin\Debug\CI-Sample.dll"
    /out:FxCopReport.xml

(這邊沒有指定/rule,使用所有規則進行分析)

4. 找到Report Violation區段,在FxCop的xml filename pattern輸入FxCopReport.xml

5. 儲存檔案並建置,在"畫面輸出"我們可以看到StyleCop的執行結果

6. 回到首頁也可以看到Violation報表上出現了FxCop

7. 點擊報表進去可以看到更多詳細資料

※總結
隨著我們整合了StyleCop和FxCop之後,
我們已經可以從兩個面向去確認程式碼的品質,
並且伴隨著每日建置及報表的產生,
追蹤程式碼健康狀況不再是困難的事情,
也可以透過圖表來檢查是否有收斂問題,以及改善的進度。
關於今天的介紹,若有問題歡迎大家提出來一起討論!


上一篇
CI Server 11 - 靜態程式碼分析 (FxCop)
下一篇
CI Server 13 - 找出重複的程式碼 (Simian)
系列文
使用Jenkins打造.Net CI Server30

尚未有邦友留言

立即登入留言