Token导航 LogoToken导航

Agent Skill · 运维和基础设施

dotnet-testing-xunit-project-setup(dotnet 测试 xunit 项目设置)

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

dotnet-testing-xunit-project-setup 是运维和基础设施类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为需要联网;许可证为 MIT,第三方扫描已通过,按安装量在运维和基础设施类的 2,449 个 Skill 里排第 927。

总安装 1,164周安装 50GitHub Stars 24下载 408核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT

安装方式

通过对话安装

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

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

命令行安装

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

skills.shnpx skills
npx skills add https://github.com/kevintsengtw/dotnet-testing-agent-skills --skill dotnet-testing-xunit-project-setup

这个 Skill 是做什么的

运维和基础设施类 Skill 处理部署、监控、日志和云资源,多数需要较高的执行权限。

指导创建符合最佳实践的 xUnit 测试项目结构。提供解决方案目录布局与命名约定标准。支持使用 .NET CLI 快速生成主项目和测试项目。适用于新项目初始化或遗留项目测试框架迁移。dotnet-testing-xunit-project-setup 属于运维和基础设施类 Skill,可作为该场景下的辅助能力补充。

来源仓库内路径:skills/dotnet-testing-xunit-project-setup

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/kevintsengtw/dotnet-testing-agent-skills --ski…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

dotnet-testing-xunit-project-setup 怎么安装?

在终端执行 npx skills add https://github.com/kevintsengtw/dotnet-testing-agent-skills --skill dotnet-…。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

dotnet-testing-xunit-project-setup 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

dotnet-testing-xunit-project-setup 需要什么权限?

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

dotnet-testing-xunit-project-setup 是免费的吗?

来源标注的许可证是 MIT。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

dotnet-testing-xunit-project-setup 用的人多吗?

公开数据是累计安装 1,164 次,近一周安装 50 次,下载 408 次,GitHub 24 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

dotnet-testing-xunit-project-setup 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 3 个目录同时收录,说明这个 Skill 流传比较广。
  • 许可证明确为 MIT,商用和分发边界好判断。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理运维和基础设施类任务、又不想每次都手写提示词的人。
  • 需要许可证清楚、并且有第三方扫描结果的团队项目。

不太适合

  • 需要厂商级技术支持和 SLA 的生产系统。

运维和基础设施类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
brainstorming

头脑风暴 · Codex、Claude

3,148,776173,131操作浏览器MIT通过
copywriting

文案写作 · Codex、Claude

1,996,72425,583需要联网MIT通过
openclaw-secure-linux-cloud

OpenClaw secure linux cloud 命令行 · Codex、Claude

1,853,08840接触敏感数据未明确未通过
xget

xget 命令行 · Codex、Claude

1,799,28040执行命令未明确未通过
requesting-code-review

代码审查请求 · Codex、Claude

1,590,144173,103权限未标注MIT通过
dotnet-testing-xunit-project-setup

dotnet 测试 xunit 项目设置 · 本页

1,16424需要联网MIT通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

xUnit 測試專案設定指南

專案結構最佳實踐

建議的解決方案結構

MyProject/
├── src/                          # 主程式碼目錄
│   └── MyProject.Core/
│       ├── MyProject.Core.csproj
│       ├── Calculator.cs
│       ├── Services/
│       └── Models/
├── tests/                        # 測試程式碼目錄
│   └── MyProject.Core.Tests/
│       ├── MyProject.Core.Tests.csproj
│       ├── CalculatorTests.cs
│       ├── Services/
│       └── Models/
└── MyProject.sln

結構原則:

  1. src 與 tests 分離:清楚區分生產程式碼與測試程式碼
  2. 命名慣例:測試專案名稱為 {主專案名稱}.Tests
  3. 目錄對應:測試專案的資料夾結構應對應主專案的結構
  4. 一對一映射:每個主專案應有對應的測試專案

建立 xUnit 測試專案

方法一:使用.NET CLI(推薦)

步驟 1:建立解決方案與專案
# 建立解決方案
dotnet new sln -n MyProject

# 建立主專案(類別庫)
dotnet new classlib -n MyProject.Core -o src/MyProject.Core

# 建立測試專案(xUnit 範本)
dotnet new xunit -n MyProject.Core.Tests -o tests/MyProject.Core.Tests

# 將專案加入解決方案
dotnet sln add src/MyProject.Core/MyProject.Core.csproj
dotnet sln add tests/MyProject.Core.Tests/MyProject.Core.Tests.csproj

# 建立專案參考(測試專案參考主專案)
dotnet add tests/MyProject.Core.Tests/MyProject.Core.Tests.csproj reference src/MyProject.Core/MyProject.Core.csproj
步驟 2:安裝程式碼覆蓋率工具
# 切換到測試專案目錄
cd tests/MyProject.Core.Tests

# 安裝 coverlet.collector(用於收集程式碼覆蓋率)
dotnet add package coverlet.collector

方法二:使用 Visual Studio

  1. 建立解決方案

- File → New → Project - 選擇「Blank Solution」 - 命名為專案名稱

  1. 加入主專案

- 右鍵解決方案 → Add → New Project - 選擇「Class Library」 - 命名為 MyProject.Core

  1. 加入測試專案

- 右鍵解決方案 → Add → New Project - 搜尋並選擇「xUnit Test Project」 - 命名為 MyProject.Core.Tests

  1. 設定專案參考

- 右鍵測試專案 → Add → Project Reference - 勾選主專案

xUnit 測試專案的 csproj 設定

標準 xUnit 測試專案 csproj

請參考同目錄下的 templates/xunit-test-project.csproj 範本檔案。

核心相依套件說明:

  1. xunit(2.9.3+)

- xUnit 測試框架的核心套件 - 提供 [Fact]、[Theory] 等測試屬性 - 包含 Assert 類別與斷言方法

  1. xunit.runner.visualstudio(3.0.0+)

- Visual Studio Test Explorer 整合 - 讓測試能在 VS Code、Visual Studio、Rider 中被探索與執行 - 支援測試結果的即時顯示

  1. Microsoft.NET.Test.Sdk(18.3.0+)

- .NET 測試平台的 SDK - 讓 dotnet test 指令能夠執行測試 - 支援測試結果報告與測試探索

  1. coverlet.collector(8.0.0+)

- 程式碼覆蓋率收集工具 - 與 dotnet test 整合 - 產生覆蓋率報告(支援 Cobertura、OpenCover 等格式)

重要 csproj 設定項目

<PropertyGroup>
  <TargetFramework>net9.0</TargetFramework>
  <ImplicitUsings>enable</ImplicitUsings>
  <Nullable>enable</Nullable>
  <IsPackable>false</IsPackable>
  <IsTestProject>true</IsTestProject>
</PropertyGroup>

設定說明:

  • IsPackable=false:測試專案不應被打包成 NuGet 套件
  • IsTestProject=true:明確標記為測試專案,讓工具識別
  • Nullable=enable:啟用可為 Null 的參考型別檢查

測試類別基本結構

標準測試類別範本

namespace MyProject.Core.Tests;

public class CalculatorTests
{
    private readonly Calculator _calculator;

    // 建構函式:每個測試執行前都會被呼叫
    public CalculatorTests()
    {
        _calculator = new Calculator();
    }
}

測試生命週期(重要概念)

xUnit 的測試隔離機制:

  1. 每個測試方法都會創建新的測試類別實例
  2. 建構函式:在每個測試方法執行前被呼叫
  3. 測試方法:執行測試邏輯
  4. Dispose():如果實作 IDisposable,在每個測試方法執行後被呼叫

執行順序範例:

執行 Test1:
  → 建構函式 → Test1 方法 → Dispose()

執行 Test2:
  → 建構函式 → Test2 方法 → Dispose()

這確保了 測試隔離,符合 FIRST 原則的 I (Independent)。

執行測試

使用.NET CLI

# 建置專案
dotnet build

# 執行所有測試
dotnet test

# 執行測試並收集程式碼覆蓋率
dotnet test --collect:"XPlat Code Coverage"

# 執行特定測試專案
dotnet test tests/MyProject.Core.Tests/MyProject.Core.Tests.csproj

# 執行測試並產生詳細輸出
dotnet test --verbosity detailed

在 IDE 中執行

VS Code(需安裝 C# Dev Kit)
  1. 安裝 C# Dev Kit
  2. 開啟 Test Explorer(測試總管)
  3. 點擊測試旁的播放按鈕執行
Visual Studio
  1. 開啟 Test Explorer(測試 → Test Explorer)
  2. 點擊「Run All」執行所有測試
  3. 可以右鍵單一測試執行或偵錯
JetBrains Rider
  1. 測試方法旁會出現綠色執行圖示
  2. 點擊執行或偵錯測試
  3. 使用 Unit Tests 視窗管理測試

專案參考設定原則

參考方向規則

測試專案 → 主專案   (正確)
主專案 → 測試專案   (錯誤)

測試專案應該參考主專案,但主專案絕對不應參考測試專案。

設定專案參考

# 讓測試專案參考主專案
dotnet add tests/MyProject.Core.Tests/MyProject.Core.Tests.csproj reference src/MyProject.Core/MyProject.Core.csproj

在 csproj 中會產生:

<ItemGroup>
  <ProjectReference Include="..\..\src\MyProject.Core\MyProject.Core.csproj" />
</ItemGroup>

進階:多個測試專案的組織

當專案變大時,可能需要多個測試專案:

MyProject/
├── src/
│   ├── MyProject.Core/
│   ├── MyProject.Web/
│   └── MyProject.Infrastructure/
├── tests/
│   ├── MyProject.Core.Tests/           # 單元測試
│   ├── MyProject.Web.Tests/            # Web 層測試
│   ├── MyProject.Infrastructure.Tests/ # 基礎設施測試
│   └── MyProject.Integration.Tests/    # 整合測試
└── MyProject.sln

命名慣例建議:

  • *.Tests - 單元測試
  • *.Integration.Tests - 整合測試
  • *.Acceptance.Tests - 驗收測試
  • *.Performance.Tests - 效能測試

實際工作專案的命名規範

在實際的工作專案中,建議使用更明確的命名格式來區分測試類型:

推薦的命名格式:

MyProject/
├── src/
│   ├── MyProject.Core/
│   └── MyProject.WebApi/
├── tests/
│   ├── MyProject.Core.Test.Unit/              # 單元測試(明確標示)
│   ├── MyProject.WebApi.Test.Unit/            # WebApi 單元測試
│   └── MyProject.WebApi.Test.Integration/     # WebApi 整合測試
└── MyProject.sln

命名規則:

  • 單元測試:{專案名稱}.Test.Unit

- 範例:MyProject.Core.Test.Unit - 特性:不依賴外部資源(資料庫、API、檔案系統等) - 執行速度:快速(毫秒級)

  • 整合測試:{專案名稱}.Test.Integration

- 範例:MyProject.WebApi.Test.Integration - 特性:測試多個元件的整合,可能依賴外部資源 - 執行速度:較慢(秒級)

這種命名的優勢:

  1. 清晰度:一眼就能分辨測試類型
  2. 執行策略:可以在 CI/CD 中分階段執行 # 快速回饋:只執行單元測試 dotnet test --filter "FullyQualifiedName~.Test.Unit" # 完整驗證:執行整合測試 dotnet test --filter "FullyQualifiedName~.Test.Integration"
  3. 相依性管理:整合測試可以有不同的套件相依(如 Testcontainers)
  4. 團隊協作:新成員能快速理解專案結構

CLI 建立範例:

# 建立單元測試專案
dotnet new xunit -n MyProject.Core.Test.Unit -o tests/MyProject.Core.Test.Unit
dotnet add tests/MyProject.Core.Test.Unit reference src/MyProject.Core

# 建立整合測試專案
dotnet new xunit -n MyProject.WebApi.Test.Integration -o tests/MyProject.WebApi.Test.Integration
dotnet add tests/MyProject.WebApi.Test.Integration reference src/MyProject.WebApi
提示:雖然本範例中為了簡化說明使用 .Tests 格式,但在實際專案中強烈建議使用 .Test.Unit 和 .Test.Integration 這種更明確的格式。

常見問題與解決方案

Q1: 測試探索失敗,Test Explorer 看不到測試?

檢查清單:

  1. 確認已安裝 xunit.runner.visualstudio 套件
  2. 確認已安裝 Microsoft.NET.Test.Sdk 套件
  3. 執行 dotnet build 重新建置
  4. 重啟 IDE 或重新載入 Test Explorer

Q2: 測試可以在 CLI 執行但在 IDE 中無法執行?

解決方案:

  • 確認 IDE 已安裝相關擴充套件(VS Code 需要 C# Dev Kit)
  • 清除快取:刪除 bin/ 和 obj/ 資料夾後重新建置
  • 檢查 .csproj 中的 IsTestProject 屬性是否為 true

Q3: 如何在測試專案中使用 Internal 類別?

在主專案的 .csproj 或 AssemblyInfo.cs 中加入:

[assembly: InternalsVisibleTo("MyProject.Core.Tests")]

或在 csproj 中:

<ItemGroup>
  <InternalsVisibleTo Include="MyProject.Core.Tests" />
</ItemGroup>

範本檔案

請參考同目錄下的範本檔案以快速建立專案:

  • templates/project-structure.md - 完整的專案結構範例
  • templates/xunit-test-project.csproj - xUnit 測試專案的 csproj 範本

檢查清單

建立 xUnit 測試專案時,請確認以下項目:

  • 測試專案命名為 {主專案名稱}.Tests
  • 測試專案位於 tests/ 目錄下
  • 已安裝 xunit、xunit.runner.visualstudio、Microsoft.NET.Test.Sdk 套件
  • 已安裝 coverlet.collector 用於程式碼覆蓋率
  • 測試專案已參考主專案
  • IsPackable 設為 false
  • IsTestProject 設為 true
  • 可以執行 dotnet test 成功
  • IDE 的 Test Explorer 可以探索到測試

輸出格式

  • 產生完整的 xUnit 測試專案結構(src/ 與 tests/ 分離)
  • 產生測試專案 csproj 檔案(含必要套件參考)
  • 提供 dotnet CLI 建立指令序列
  • 包含專案參考設定與 xunit.runner.json 配置(如需要)
  • 產生基本測試類別範本(.cs 檔案)

參考資源

原始文章

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

  • Day 02 - xUnit 框架深度解析

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

  • Day 03 - xUnit 進階功能與測試資料管理

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

官方文件

相關技能

  • unit-test-fundamentals - 單元測試基礎與 FIRST 原則
  • test-naming-conventions - 測試命名規範
  • code-coverage-analysis - 程式碼覆蓋率分析

平台分布

Gemini CLI

26.35%
按下载量换算108

Claude Code

25.81%
按下载量换算105

Antigravity

18.66%
按下载量换算76

OpenCode

11.38%
按下载量换算46

Cursor

7.53%
按下载量换算31

windsurf

3.21%
按下载量换算13

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

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

安装前确认

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

继续浏览同类 Skills