Token导航 LogoToken导航TokenDH.com
运维和基础设施需要联网github未标认证来源可访问clear审计通过

dotnet-testing-advanced-xunit-upgrade-guidedotnet 测试高级 xunit 升级指南

Agent Skill

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

总安装

576

周安装

24

GitHub Stars

24

下载量

192
CodexClaudeCursorGemini CLI

安装说明

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

GitHub

来源数

3

许可证

MIT

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

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

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

命令行安装

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

skills.shnpx skills
npx skills add https://github.com/kevintsengtw/dotnet-testing-agent-skills --skill dotnet-testing-advanced-xunit-upgrade-guide

简介

dotnet-testing-advanced-xunit-upgrade-guide 指导从 xUnit 2.9.x 升级到 3.x 的核心变更适配。

  • 涵盖命名空间变更(xunit.v3.*)、async void 移除及 IAsyncLifetime 继承调整。
  • 列出六项破坏性变更并提供修正前后代码对照,降低迁移风险。
  • 最低要求 .NET Framework 4.7.2 或 .NET 8.0+,不支持旧版运行时。
  • 升级前务必备份原测试项目,分阶段验证关键断言与 fixture 行为。

SKILL.md

xUnit 升級指南:從 2.9.x 到 3.x

核心概念

套件命名變革

xUnit v3 採用全新的套件命名策略:

v1~v2 套件名稱v3 套件名稱說明
xunitxunit.v3主要測試框架
xunit.assertxunit.v3.assert斷言函式庫
xunit.corexunit.v3.core核心元件
xunit.abstractions(移除)不再需要
xunit.runner.visualstudioxunit.runner.visualstudio (3.x.y)測試執行器

重要:使用 xunit.v3 套件名稱,不是 xunit

最低運行時需求

  • .NET Framework 4.7.2+.NET 8.0+ (推薦)
  • 不支援:.NET Core 3.1、.NET 5/6/7

破壞性變更

涵蓋 OutputType 改為 Exe、async void 不再支援、IAsyncLifetime 繼承 IAsyncDisposable、SkippableFact 移除、僅支援 SDK-style 專案、自訂 DataAttribute 簽名變更等六項破壞性變更,每項皆附修正前後的程式碼對照。

完整破壞性變更清單與程式碼範例請參考 references/breaking-changes.md

升級步驟

五步驟 SOP:建立升級分支 → 更新專案檔案(套件、OutputType)→ 修正 async void → 更新 using → 編譯與測試。另含.NET 10 SDK MTP 模式遷移指南(global.json 設定、CLI 用法變更、VSTest 遷移步驟)。

完整升級步驟與.NET 10 MTP 模式指南請參考 references/upgrade-steps.md

xUnit 3.x 新功能

涵蓋 Assert.Skip / SkipUnless / SkipWhen 動態跳過、Explicit Tests、[Test] 屬性、MatrixTheoryData 矩陣測試、Assembly Fixtures、Test Pipeline Startup、多格式測試報告等新功能,每項皆附完整程式碼範例。

完整新功能範例請參考 references/new-features.md

Testcontainers.XunitV3 整合套件

Testcontainers 官方推出 Testcontainers.XunitV3(4.9.0),專為 xUnit v3 設計的整合套件,自動管理容器的建立與銷毀,取代手動實作 IAsyncLifetime 的方式。

<PackageReference Include="Testcontainers.XunitV3" Version="4.9.0" />
若專案同時使用 Testcontainers 與 xUnit v3,建議採用此套件簡化容器生命週期管理。

xunit.runner.json 設定

{
  "$schema": "https://xunit.net/schema/v3/xunit.runner.schema.json",
  "parallelAlgorithm": "conservative",
  "maxParallelThreads": 4,
  "diagnosticMessages": true,
  "internalDiagnosticMessages": false,
  "methodDisplay": "classAndMethod",
  "preEnumerateTheories": true,
  "stopOnFail": false
}

常見問題與解決方案

問題 1:找不到 xunit.abstractions

移除 using Xunit.Abstractions;,相關類型已移到 Xunit 命名空間。

問題 2:IDE 無法發現測試

確認 IDE 版本:Visual Studio 2022 17.8+、Rider 2023.3+、VS Code 最新版。如仍有問題,可暫時停用 MTP:

<PropertyGroup>
  <EnableMicrosoftTestingPlatform>false</EnableMicrosoftTestingPlatform>
</PropertyGroup>
.NET 10 SDK 注意:若使用 MTP 模式,停用 MTP 會導致 dotnet test 錯誤。應改為移除 global.json 中的 test 區段。

升級檢查清單

升級前

  • 確認目標框架版本 (.NET 8+ 或.NET Framework 4.7.2+)
  • 檢查專案檔案格式 (SDK-style)
  • 識別所有 async void 測試方法
  • 檢查 IAsyncLifetime 實作
  • 評估相依套件相容性
  • 建立備份分支

升級過程

  • 更新套件參考 (使用 xunit.v3)
  • 移除 xunit.abstractions 參考
  • 修改 OutputType 為 Exe
  • 修正所有 async void 測試方法
  • 更新 using 陳述式
  • 重構自訂屬性 (如有)
  • 驗證編譯成功
  • 執行所有測試

升級後驗證

  • 功能完整性測試
  • 效能基準比較
  • CI/CD Pipeline 驗證
  • 文檔更新
  • 團隊培訓
  • (.NET 10+)設定 global.json 啟用 MTP 模式並驗證 dotnet test 正常運作

IDE 與工具支援

IDE最低版本
Visual Studio2022 17.8+
VS Code最新版
Rider2023.3+

xUnit 3.x 預設啟用 Microsoft Testing Platform(MTP),搭配.NET 10 SDK 可使用原生 MTP 模式。

.NET 10 MTP 模式詳細設定請參考 references/upgrade-steps.md

輸出格式

  • 產生升級後的測試專案.csproj 設定(xunit.v3 套件、OutputType Exe)
  • 包含 async void 修正為 async Task 的測試程式碼
  • 包含 IAsyncLifetime 調整與 SkippableFact 替換範例
  • 產生 xunit.runner.json 設定檔

參考資源

原始文章

本技能內容提煉自「老派軟體工程師的測試修練 - 30 天挑戰」系列文章:

  • Day 26 - xUnit 升級指南:從 2.9.x 到 3.x 的轉換

- 鐵人賽文章:https://ithelp.ithome.com.tw/articles/10377477 - 範例程式碼:https://github.com/kevintsengtw/30Days_in_Testing_Samples/tree/main/day26

官方文件

相關技能

  • dotnet-testing-xunit-project-setup - xUnit 專案設定基礎
  • dotnet-testing-advanced-tunit-fundamentals - TUnit 替代框架
  • dotnet-testing-advanced-testcontainers-database - Testcontainers 資料庫整合測試(搭配 XunitV3 套件)

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

04

需要参考平台分布和安装热度时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

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

平台分布

Claude Code

28.94%
按下载量换算56

Gemini CLI

19.53%
按下载量换算37

Antigravity

17.91%
按下载量换算34

OpenCode

11.76%
按下载量换算23

windsurf

7.08%
按下载量换算14

github-copilot

3.21%
按下载量换算6

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

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

来源信息

继续浏览同类 Skills