Token导航 LogoToken导航TokenDH.com
研究检索external-servicegithub未标认证来源可访问clear审计通过

dotnet-testing-code-coverage-analysisdotnet 测试代码覆盖率分析

Agent Skill

用于辅助测试设计、自动化测试、用例整理和回归验证。它适合让 Agent 编写单元测试、端到端测试、测试计划或根据失败日志定位问题。使用时需要确认项目测试框架、运行命令和夹具数据,避免为了通过测试而改坏真实逻辑;涉及浏览器或外部服务时,应区分本地模拟、测试环境和生产环境。

总安装

685

周安装

28

GitHub Stars

24

下载量

220
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

3

许可证

MIT

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:dotnet-testing-code-coverage-analysis(dotnet 测试代码覆盖率分析)
来源仓库:https://github.com/kevintsengtw/dotnet-testing-agent-skills
仓库路径:skills/dotnet-testing-code-coverage-analysis
安装命令:
npx skills add https://github.com/kevintsengtw/dotnet-testing-agent-skills --skill dotnet-testing-code-coverage-analysis
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/kevintsengtw/dotnet-testing-agent-skills --skill dotnet-testing-code-coverage-analysis

简介

dotnet-testing-code-coverage-analysis 测量测试执行的实际代码覆盖程度。

  • 识别未覆盖分支与复杂逻辑路径,辅助评估测试完整性。
  • 集成 Fine Code Coverage 插件实现编辑器内实时可视化标注。
  • 需配置 Coverlet 收集器并在 CI 流水线中生成 HTML 报告。
  • 高覆盖率不等于高质量,应重点关注关键业务逻辑而非追求数字指标。

SKILL.md

程式碼覆蓋率分析指南

Code Coverage 核心概念

程式碼覆蓋率 (Code Coverage) 是一種測量指標,用來統計測試執行時實際執行了多少程式碼。

實際價值: 找出測試盲點、評估測試完整性、輔助重構決策、增加測試信心。

常見誤解:

  • 涵蓋率 100% 不代表沒有 Bug — 只代表程式碼有被執行,不代表驗證了正確行為
  • 涵蓋率數字越高不一定越好 — 重點是測試的有效性
  • 把涵蓋率當作 KPI 會適得其反 — 開發者會為了衝數字而寫沒有 Assert 的測試

覆蓋率工具選擇

工具優點適用場景
Visual Studio Enterprise內建整合,完整 UI僅 Enterprise
Fine Code Coverage(推薦)免費,即時顯示,編輯器直接標示VS 所有版本
.NET CLI + Coverlet跨平台,CLI 自動化CI/CD 流程
VS Code 內建跨平台,無需額外擴充套件VS Code 開發

Fine Code Coverage 設定

  • 安裝方式: Visual Studio 延伸模組管理 → 搜尋 "Fine Code Coverage" → 安裝
  • 必要設定: 工具 → 選項 → Fine Code Coverage → Enable: True、Editor Colouring Line Highlighting: True

VS Code 內建測試覆蓋率

  1. 安裝 C# Dev Kit 擴充套件
  2. 開啟測試總管(燒杯圖示)
  3. 點選「執行涵蓋範圍測試」
  4. 查看結果:測試涵蓋範圍視圖、編輯器內顯示、檔案總管顯示

執行覆蓋率分析

# .NET CLI(推薦用於 CI/CD)
dotnet test --collect:"XPlat Code Coverage"
dotnet test --collect:"XPlat Code Coverage" --results-directory ./coverage

# Fine Code Coverage:在 VS 中執行測試後自動顯示
# VS Code:開啟測試總管 → 點選「執行涵蓋範圍測試」

方法說明

方法工具操作步驟
.NET CLICoverlet + CLI執行 dotnet test --collect:"XPlat Code Coverage"
Fine Code CoverageVS 擴充套件在 VS 中執行測試後自動顯示
VS CodeC# Dev Kit開啟測試總管 → 執行涵蓋範圍測試

設定 Coverlet

測試專案需安裝 coverlet.collector 套件,並可透過 runsettings 檔案進行進階設定(排除規則、閾值、報告格式)。

完整 csproj 配置範例請參考 references/coverlet-csproj-config.md

解讀覆蓋率報告

顏色標示: 綠色(已覆蓋)、黃色(部分覆蓋)、紅色(未覆蓋)

覆蓋率指標:

  1. Line Coverage(行覆蓋率) — 被執行的行數 / 總行數,最基本的指標
  2. Branch Coverage(分支覆蓋率) — 被執行的分支數 / 總分支數,比行覆蓋率更準確
  3. Method Coverage(方法覆蓋率) — 被執行的方法數 / 總方法數

報告解讀策略: 優先處理紅色區域(完全未測試)→ 檢查黃色區域(部分分支未測試)→ 評估必要性(簡單 getter/setter 可跳過)

結合複雜度指標

循環複雜度(Cyclomatic Complexity)代表程式中獨立邏輯路徑的數量,等於至少需要的測試案例數量。每個 if、for、while、case、&&、|| 都會增加複雜度。

Visual Studio 擴充套件:

  • CodeMaintainability — 顯示可維護性指標、計算循環複雜度
  • CodeMaid — Spade 功能視覺化程式碼結構、顯示每個方法的複雜度
完整範例與測試策略請參考 references/cyclomatic-complexity-example.md

改善覆蓋率的策略

漸進式改善流程:

  1. 第一階段:覆蓋核心業務邏輯(目標 60-70%)
  2. 第二階段:補充邊界條件測試(目標 70-80%)
  3. 第三階段:處理異常情境(目標 80-85%)
  4. 維持階段:新增功能必須有測試

優先順序:

  • 高優先級:業務邏輯核心、金融計算、資料驗證、權限控制、異常處理
  • 中優先級:資料轉換、格式化邏輯、查詢邏輯
  • 低優先級:簡單 getter/setter、DTO 類別、自動產生的程式碼

排除不必要的程式碼: 使用 [ExcludeFromCodeCoverage] 屬性或在 runsettings 中排除。

最佳實踐

測試案例數量決策

  1. 基於需求分析 — 列出使用案例、識別邊界條件和異常情況
  2. 參考複雜度指標 — 循環複雜度提供測試案例下限
  3. 平衡覆蓋率與品質 — 不以 100% 覆蓋率為唯一目標,專注於關鍵業務邏輯

四大測試類型

  1. 邊界測試:測試輸入值的上下限
  2. 異常測試:驗證錯誤處理邏輯
  3. 主流程測試:覆蓋正常的業務流程
  4. 條件分支測試:確保所有分支都有測試

持續改善

  • 每次提交前檢查涵蓋率變化,Pull Request 時審查覆蓋率
  • 關注未覆蓋的關鍵程式碼,優先處理高複雜度未測試區域
  • 新功能必須包含測試,Code Review 包含測試檢查

CI/CD 整合

覆蓋率分析可整合至 CI/CD Pipeline,在 GitHub Actions 中使用 dotnet test --collect:"XPlat Code Coverage" 搭配 reportgenerator 產生報告;在 Azure DevOps 中使用 DotNetCoreCLI@2 任務搭配 PublishCodeCoverageResults@1

完整 YAML 設定範例請參閱 references/cicd-integration.md

常見問題與解決方案

Q1: 覆蓋率顯示 0%?

  1. 確認已安裝 coverlet.collector 套件
  2. 檢查 runsettings 設定是否正確
  3. 確認測試有實際執行
  4. 查看是否有排除設定過於廣泛

Q2: Visual Studio 看不到覆蓋率?

  • Community/Professional 版本:安裝 Fine Code Coverage 擴充套件
  • Enterprise 版本:使用內建功能
  • 確認已啟用覆蓋率收集

Q3: VS Code 無法顯示覆蓋率?

  1. 確認已安裝 C# Dev Kit
  2. 重新執行「執行涵蓋範圍測試」
  3. 檢查 lcov 檔案是否產生
  4. 嘗試重新載入視窗

Q4: 如何提升覆蓋率?

  1. 識別未覆蓋的關鍵程式碼(紅色區域)
  2. 補充邊界條件測試
  3. 測試所有條件分支
  4. 加入異常情境測試
  5. 考慮重構過於複雜的方法

檢查清單

  • 已安裝 coverlet.collector 套件
  • 可以執行 dotnet test --collect:"XPlat Code Coverage"
  • 工具可以正常顯示覆蓋率結果
  • 了解覆蓋率數字的真正意義(不是 KPI)
  • 已排除不必要的程式碼
  • 專注於測試品質而非覆蓋率數字

範本檔案

  • templates/runsettings-template.xml - 覆蓋率設定範本
  • templates/coverage-workflow.md - 完整的工作流程說明

核心理念

程式碼覆蓋率是手段,不是目的。 重點在於關鍵業務邏輯是否都有測試、測試是否真正驗證了預期行為、是否能在重構時提供信心。

輸出格式

  • 產生 coverage.runsettings 設定檔,配置覆蓋率收集參數與排除規則
  • 修改測試專案 .csproj,確保包含 coverlet.collector 套件參考
  • 產生覆蓋率報告(cobertura XML 格式),可供 CI/CD 管線使用
  • 提供覆蓋率分析摘要,標示未覆蓋的關鍵區域與改善建議

參考資源

原始文章

  • Day 06 - Code Coverage 程式碼涵蓋範圍實戰指南

- 鐵人賽文章:https://ithelp.ithome.com.tw/articles/10374467

官方文件

工具

相關技能

  • unit-test-fundamentals - 單元測試基礎與 FIRST 原則
  • xunit-project-setup - xUnit 專案設定

适合场景

01

研究助手

02

事实核查

03

知识库问答

04

带来源的搜索总结

能力概览

能力 1

组合搜索和大模型调用

能力 2

支持多来源检索和总结

能力 3

强调引用来源和事实核查

能力 4

适合研究型 Agent 流程

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Claude Code

26.49%
按下载量换算58

Gemini CLI

22.13%
按下载量换算49

Antigravity

17.02%
按下载量换算37

OpenCode

12.69%
按下载量换算28

windsurf

7.98%
按下载量换算18

github-copilot

3.5%
按下载量换算8

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

external-service

该 Skill 可能调用第三方服务、云服务或外部模型 API,使用前需要确认账号、额度、数据发送范围和服务条款。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。

来源信息

继续浏览同类 Skills