Thinkin Markdown

AxoCover

.NET 分析程式碼覆蓋率工具

發佈時間 2020-01-03
閱讀時間 4 分鐘
主題 Visual Studio
標籤
Visual Studio 擴充功能AxoCover單元測試程式碼覆蓋率
AxoCover

前言

AxoCover 是小弟最近在使用的程式碼涵蓋率分析工具,因為最近在幫既有專案撰寫單元測試,以往公司做法是透過 Jenkins 處理 CI/CD 會一併執行專案所寫的單元測試及分析程式碼覆蓋率並產出一份報告,但有一個比較尷尬的問題就是需要先把程式碼 push 至遠端,這樣 Jenkins 才會被觸發要去處理這件事情(有設定好的情況下),但是我想在本地端就能先看大致跑出來的涵蓋率結果,這樣或多或少就能減少耗用 Jenkins 資源,畢竟公司專案很多,確實這個工具也給了我不少幫助!讓我們往下看吧!

AxoCover-1

SonarQube Coverage Report

蠻少人討論這個工具,但實際用了之後感覺回不去的工具(〃∀〃)

AxoCover 介紹

AxoCover-2

Microsoft Marketplace AxoCover Download Page

有幾點可以特別注意:

  1. 屬 Visual Studio 擴充功能
  2. 支援 .NET Framework 專案(不支援 .NET Core 及 Xamarin 專案)
  3. 涵蓋狀況呈現於編輯器
  4. 可輸出涵蓋率結果於靜態 HTML 上
  5. 支援 MSTest、xUnit、NUnit 測試框架

AxoCover 安裝步驟

打開 Visual Studio ➡️ 工具 ➡️ 擴充功能和更新 ➡️ 線上 ➡️ 搜尋 AxoCover ➡️ 安裝 ➡️ 重開 Visual Studio ➡️ 完成安裝!!

AxoCover-3

Extension and Updates ➡ Online ➡ Search AxoCover

AxoCover 使用說明

AxoCover-4

Tools ➡ AxoCover

點擊後 IDE 右側應該會出現該工具的頁籤,一開始它會去讀取整個 Solution 確認是否有單元測試專案或程式,如果沒有找到會像下面這樣:

AxoCover-5

AxoCover Not Found Unit Tests

如果發生明明有單元測試專案或程式,但依然沒有被找出來的情況,這時可以試試看重建專案讓該工具重新讀取

AxoCover-6

AxoCover Founded Unit Tests

功能介紹

AxoCover-7

AxoCover Function list

Tests

Run

編譯後執行單元測試(不含涵蓋率分析)。

AxoCover-8

Build Solution And Run Unit Tests

Cover

編譯後執行單元測試(涵蓋率分析)並產生 coverageReport.xml 放於 Solution 下的 .axoCover/runs/run_YYYY–MM–DD_HH–MM–SS 資料夾內。

AxoCover-9

.axoCover

AxoCover-10

runs

AxoCover-11

coverageReport.xml

Build

編譯(不含執行單元測試涵蓋率分析)

Collapse

收合頁籤內容

Report

AxoCover-12

Coverage Report

Import

可匯入 OpenCover coverage reports(*.xml)格式資料 。

Export

依據當前 Coverage Report 匯出靜態 HTML Summary Report(可瀏覽器觀看)。

AxoCover-13

Click “Export” Generate Summary Report

AxoCover-14

reports

AxoCover-15

index.htm

AxoCover-16

Summary Report Page

Sort(Alphabetical 、Uncovered Code、Coverage)

依照字母、未涵蓋程式碼、涵蓋率排序

Collapse

收合頁籤內容

Settings

AxoCover-17

Settings

Visualization

根據需求調整視覺呈現部分。

綠(Green):被覆蓋程式碼(Covered lines)

黃(Yellow):部分覆蓋程式碼(Part of covered lines)

紅(Red):未覆蓋程式碼(Uncovered lines)

小圈圈(Circle):條件判斷涵蓋狀況(Covered condition situation)

空心圈圈(Hollow Circle):未涵蓋條件(Uncovered condition)

實心圈圈(Solid Circle):已涵蓋條件(Covered condition)

AxoCover-18

Notice Inner Red Area

Coverage

根據需求可決定測試涵蓋率分佈到什麼程度。

Output directories

可直接移動到輸出目錄或清除目錄資料。

Test settings

可設定跑測試的目標平台 x86 或 x64 … 等等相關設定。

結尾

感謝各位花時間看完此篇小文,如果本文中有描述錯誤,還請各位指教。

雖然透過 CI/CD 整合 SonarQube 後一樣能做到觀察程式涵蓋率這件事,但如果能在開發時就能初步知道自己寫的單元測試能涵蓋到什麼程度也不是一件壞事哦(ゝ∀・)b

所以本文目的是希望大家可以快速了解這是什麼樣的工具及如何能夠快速去使用它,希望對大家是有幫助的!ヽ(✿゚▽゚)ノ

參考

💭 [VisualStudio] .NET 分析測試代碼覆蓋率 AxoCover

如果這篇文章對你有幫助,歡迎分享給更多人!

贊助支持

如果你喜歡我們的文章,或是這些內容對你有幫助,歡迎透過以下平台請我們喝杯咖啡,支持我們持續創作!

Ko-fi

作者

NE

Neil Tsai

樂於分享所見所聞所覺所知的全端工程師

留言功能需要 Cookie 授權

為了載入留言功能,我們需要您同意使用「功能性 Cookie」。您可以隨時在設定中調整。

免責聲明

本網站對於任何使用或引用本網站網頁資料引致之損失或損害,概不負責。本網站亦有權隨時刪除、暫停或編輯本網站所登載之各項資料,以維護本網站之權益。除法律有強制規定外,在任何情況下,本網站對於 (1) 使用或無法使用本網站之各項服務;(2) 經由本網站取得訊息或進行交易;(3) 第三人在本網站上之陳述或作為;以及 (4) 其他與本網站服務有關之事項所致生之任何直接、間接、附帶、特別、懲罰性或衍生性損害,一概不負賠償責任。

CopyRight © 2026 Thinkin Markdown