上一篇「Visual Studio 2015 Professional 測試的程式碼涵蓋範圍 - 使用 OpenCover 和 OpenCover UI」說明的是在 VS2015 Professional 裡使用 OpenCover UI 去執行 OpenCover 以得到測試涵蓋範圍的結果,但因為 OpenCover UI 的功能與操作有些陽春,另外在執行時會出現錯誤的狀況,讓我在使用上總是覺得不順手,不過另外一個擴充功能可以使用,那就是這篇要介紹的「AxoCover」。
AxoCover
https://marketplace.visualstudio.com/items?itemName=axodox1.AxoCover
https://github.com/axodox/AxoTools
在 Visual Studio 2015 的擴充功能下,以關鍵字「OpenCover」或「AxoCover」就可以找到(其實上一篇文章裡就有看到 AxoCover)
安裝好 AxoCover 並重新開啟 Visual Studio 2015 之後,可以在上方的「工具」選單裡看到 AxoCover
AxoCover 功能視窗
重新建置專案後就可以在 AxoCover 看到單元測試
可以在 [ Search test Methods, classes and projects ] 的搜尋框裡下關鍵字,以查詢相符合的測試方法、類別和專案
在 AxoCover 的 Tests 視窗下,點選單元測試,會在下方顯示測試的訊息
點選上方的「Run」就會開始執行單元測試
測試完成後可以在 AxoCover Tests 視窗裡清楚看到執行結果,與 Visual Studio 或 OpenCover UI 顯示程式碼覆蓋範圍的方式不同,不是以色塊的方式,而是在 Editor 程式碼行數的左方以不同的顏色顯示
黃色,表示為該行部分程式未覆蓋
紅色,表示該行程式都沒有被覆蓋
綠色,表示該行程式有被測試給覆蓋
如果是部分覆蓋的話,會特別將未被測試程式覆蓋的部分框起來,如下圖所示
點選 AxoCover 的 Report,可以看到測試執行結果的一些數據
另外如果執行專案的單元測試而無法執行,並且顯示「Test run failed.」
這時候就要到 Settings 裡去做調整,將 Test Runners 選為「MsTestRunner」
在 AxoCover 的 Settings 裡,General 的兩個項目可以依據自己的習慣去做調整
「Show coverage in editor」有勾選的話,在執行測試完畢後會立即在 Editor 裡顯示覆蓋範圍的顏色表示,預設是有勾選的。
「Automatically run coverage after build」如有勾選時,會在重新建置方案或重建專案之後就自動執行單元測試。
最後要說的是… AxoCover 並不相依於 OpenCover,也就是說並不需要安裝 OpenCover 就可以使用 AxoCover,以下是 AxoCover 在 Visual Studio Marketplace 頁面裡的說明
AxoCover 於 Visual Studio 淺色主題的樣子
AxoCover 是個功能還蠻完整也相當方便好用的測試操作介面,不需要依賴於 OpenCover,但是有個問題就是… 似乎只能執行使用 MsTest 所寫的單元測試,所以使用 NUnit 或 xUnit 寫的測試程式就無法使用 AxoCover,因為我在工作的專案裡都是使用 MsTest 寫測試,所以就無從得知其他 Test Framework 的狀況了,所以也歡迎有使用其他 Tests Framework 寫測試的朋友提供相關的訊息,謝謝。
這兩篇所介紹的工具 OpenCover, OpenCover UI, AxoCover 並無法能夠像 Visual Studio Enterprise 版本預設提供的功能那麼完整與方便,因為所使用的 Visual Studio 版本為 Professional,又很需要比較完整的 Coverage 功能,我會建議有需要的人就花錢去買工具,例如 dotCover, NCover 或 NCrunch 等工具。
相關連結
https://marketplace.visualstudio.com/items?itemName=axodox1.AxoCover
https://github.com/axodox/AxoTools
以上
沒有留言:
張貼留言