如何在 自動化建置 (CI) 時一併分析UT 的 程式碼涵蓋率 Code Coverage 呢?

如何在 自動化建置 (CI) 時一併分析UT 的 程式碼涵蓋率 Code Coverage 呢?

 

現在講求 Agile ( Scrum ) 快速交付系統的時代中,自動化一直是我們開發團隊或是老闆想要更有效率的手段之一

 

尤其是建立團隊開發流程的 SOP 更是希望可以符合標準,但又可以節省同仁的工作。而自動化的過程中能有更多的分析報表也是收集資訊的項目之一

 

當團隊想要在自動化建置通常希望能同時看到測試通過率,以及 測試的程式碼涵蓋率 兩種不同的指標來確認我們的單元測試的品質

 

若是用 Team Foundation Server 的 Team Build 的只要開啟 CodeCoverageEnabled 的話就搞定了

 

image

 

立馬看一下最新的編譯結果,YES 可以看到報表中有顯示 程式碼涵蓋率的範圍有 23% ( 看來我還要再加強一下單元測試的腳本 )

 

image

 

點選「涵蓋範圍結果」就可以看到每一段程式碼區塊的涵蓋範圍,藍色代表有被執行,紅色代表沒有被執行到。

日後在分析測試案例和腳本時就會是一個非常容易使用的資訊了

這樣子就不用擔心老闆問我問題時答不出來現在開發 team 的程式碼品質的量化資訊了 微笑 

image

 

 

自從 Visual Studio 2012 可以讓開發人員除了用 MS Unit Test Framework 的 之外,也可以用 3rd party 的 unit test framework 來執行單元測試。

若是想要用 XUnit 之類的套件也想要有程式碼涵蓋率的話,就必須要自訂 runtestsettings

http://msdn.microsoft.com/zh-tw/library/dd537628.aspx

http://msdn.microsoft.com/zh-tw/library/jj159530.aspx#sample

 

但若是 Visaul Studio 2010 之前的專案的話,就必須要在 TestSetting 中先設定好並簽入到版本管控之中,並在 Team Build 的回合設定檔指定檔案才行

http://www.dotblogs.com.tw/franma/archive/2010/06/21/16017.aspx