2017年1月24日 星期二

Visual Studio 2015 Professional 測試的程式碼涵蓋範圍 - 使用 AxoCover

上一篇「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

image

 

在 Visual Studio 2015 的擴充功能下,以關鍵字「OpenCover」或「AxoCover」就可以找到(其實上一篇文章裡就有看到 AxoCover)

image

 

安裝好 AxoCover 並重新開啟 Visual Studio 2015 之後,可以在上方的「工具」選單裡看到 AxoCover

image

AxoCover 功能視窗

image

重新建置專案後就可以在 AxoCover 看到單元測試

image

可以在 [ Search test Methods, classes and projects ] 的搜尋框裡下關鍵字,以查詢相符合的測試方法、類別和專案

SNAGHTML1a73ec4

 

在 AxoCover 的 Tests 視窗下,點選單元測試,會在下方顯示測試的訊息

image

點選上方的「Run」就會開始執行單元測試

image

 

測試完成後可以在 AxoCover Tests 視窗裡清楚看到執行結果,與 Visual Studio 或 OpenCover UI 顯示程式碼覆蓋範圍的方式不同,不是以色塊的方式,而是在 Editor 程式碼行數的左方以不同的顏色顯示

image

黃色,表示為該行部分程式未覆蓋
紅色,表示該行程式都沒有被覆蓋
綠色,表示該行程式有被測試給覆蓋

如果是部分覆蓋的話,會特別將未被測試程式覆蓋的部分框起來,如下圖所示

image

 

點選 AxoCover 的 Report,可以看到測試執行結果的一些數據

image

 

另外如果執行專案的單元測試而無法執行,並且顯示「Test run failed.

image

這時候就要到 Settings 裡去做調整,將 Test Runners 選為「MsTestRunner

image

 

在 AxoCover 的 Settings 裡,General 的兩個項目可以依據自己的習慣去做調整

image

「Show coverage in editor」有勾選的話,在執行測試完畢後會立即在 Editor 裡顯示覆蓋範圍的顏色表示,預設是有勾選的。
「Automatically run coverage after build」如有勾選時,會在重新建置方案或重建專案之後就自動執行單元測試。

 

最後要說的是… AxoCover 並不相依於 OpenCover,也就是說並不需要安裝 OpenCover 就可以使用 AxoCover,以下是 AxoCover 在 Visual Studio Marketplace 頁面裡的說明

image

AxoCover 於 Visual Studio 淺色主題的樣子

image

 


AxoCover 是個功能還蠻完整也相當方便好用的測試操作介面,不需要依賴於 OpenCover,但是有個問題就是… 似乎只能執行使用 MsTest 所寫的單元測試,所以使用 NUnit 或 xUnit 寫的測試程式就無法使用 AxoCover,因為我在工作的專案裡都是使用 MsTest 寫測試,所以就無從得知其他 Test Framework 的狀況了,所以也歡迎有使用其他 Tests Framework 寫測試的朋友提供相關的訊息,謝謝。

這兩篇所介紹的工具 OpenCover, OpenCover UI, AxoCover 並無法能夠像 Visual Studio Enterprise 版本預設提供的功能那麼完整與方便,因為所使用的 Visual Studio 版本為 Professional,又很需要比較完整的 Coverage 功能,我會建議有需要的人就花錢去買工具,例如 dotCover, NCoverNCrunch 等工具。

 

相關連結

https://marketplace.visualstudio.com/items?itemName=axodox1.AxoCover

https://github.com/axodox/AxoTools

 

以上

沒有留言:

張貼留言

提醒

千萬不要使用 Google Talk (Hangouts) 或 Facebook 及時通訊與我聯繫、提問,因為會掉訊息甚至我是過了好幾天之後才發現到你曾經傳給我訊息過,請多多使用「詢問與建議」(在左邊,就在左邊),另外比較深入的問題討論,或是有牽涉到你實作程式碼的內容,不適合在留言板裡留言討論,請務必使用「詢問與建議」功能(可以夾帶檔案),謝謝。