{"id":41801154,"url":"https://github.com/kevintsengtw/dotnet-testing-agent-skills","last_synced_at":"2026-03-11T12:25:57.401Z","repository":{"id":333640750,"uuid":"1138065996","full_name":"kevintsengtw/dotnet-testing-agent-skills","owner":"kevintsengtw","description":"AI Agent Skills for .NET Testing - Based on 30-Day Testing Challenge (iThome Ironman 2025 Winner)","archived":false,"fork":false,"pushed_at":"2026-01-20T10:35:14.000Z","size":400,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-20T18:06:59.915Z","etag":null,"topics":["agent-skills","ai-assisted-development","copilot-skills","csharp","dotnet","dotnet-testing","github-copilot","integration-testing","testing","unit-testing","xunit"],"latest_commit_sha":null,"homepage":"https://agentskills.io","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kevintsengtw.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-20T07:45:21.000Z","updated_at":"2026-01-20T10:35:18.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/kevintsengtw/dotnet-testing-agent-skills","commit_stats":null,"previous_names":["kevintsengtw/dotnet-testing-agent-skills"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/kevintsengtw/dotnet-testing-agent-skills","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevintsengtw%2Fdotnet-testing-agent-skills","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevintsengtw%2Fdotnet-testing-agent-skills/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevintsengtw%2Fdotnet-testing-agent-skills/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevintsengtw%2Fdotnet-testing-agent-skills/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kevintsengtw","download_url":"https://codeload.github.com/kevintsengtw/dotnet-testing-agent-skills/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kevintsengtw%2Fdotnet-testing-agent-skills/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28745836,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T05:12:38.112Z","status":"ssl_error","status_checked_at":"2026-01-25T05:04:50.338Z","response_time":113,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-skills","ai-assisted-development","copilot-skills","csharp","dotnet","dotnet-testing","github-copilot","integration-testing","testing","unit-testing","xunit"],"created_at":"2026-01-25T06:01:46.976Z","updated_at":"2026-01-25T06:01:47.650Z","avatar_url":"https://github.com/kevintsengtw.png","language":null,"readme":"# .NET Testing Agent Skills\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![.NET](https://img.shields.io/badge/.NET-8.0+-512BD4?logo=dotnet)](https://dotnet.microsoft.com/)\n[![xUnit](https://img.shields.io/badge/xUnit-2.x-5C2D91)](https://xunit.net/)\n[![xUnit](https://img.shields.io/badge/xUnit-3.x-5C2D91)](https://xunit.net/)\n\n\u003e 🏆 基於 **2025 iThome 鐵人賽 Software Development 組冠軍作品**「老派軟體工程師的測試修練 - 30 天挑戰」提煉而成\n\n專為 .NET 開發者打造的 AI Agent Skills 集合，涵蓋從單元測試到整合測試的完整最佳實踐。讓 GitHub Copilot、Claude 等 AI 助理自動為您提供專業的測試指導！\n\n---\n\n## ✨ 特色\n\n- 🎯 **自動觸發**：AI 根據對話內容自動載入相關技能\n- 📚 **29 個精煉技能**：包含 2 個總覽技能 + 27 個專業技能，涵蓋單元測試、模擬、測試資料生成、整合測試等\n- 🔧 **即用範本**：提供完整的專案結構與程式碼範例\n- 🌐 **多平台支援**：GitHub Copilot、Claude Code、Cursor 等\n- 📖 **中文友善**：完整的繁體中文文件與命名建議\n- 📦 **標準化結構**：符合 Claude Code skills 標準，支援 npx skills install 安裝\n\n---\n\n## 🚀 快速開始\n\n### 方法一：使用 npx skills install（推薦）\n\n```bash\n# 從 GitHub 直接安裝到 Claude Code 全域 skills\nnpx skills install https://github.com/kevintsengtw/dotnet-testing-agent-skills.git\n\n# 或安裝到當前工作區\nnpx skills install https://github.com/kevintsengtw/dotnet-testing-agent-skills.git --workspace\n```\n\n### 方法二：直接複製\n\n#### 複製到 GitHub Copilot（VS Code）\n\n**Linux / macOS (Bash)**\n```bash\n# 1. Clone 此 repo\ngit clone https://github.com/kevintsengtw/dotnet-testing-agent-skills.git\n\n# 2. 複製到您的專案（GitHub Copilot 使用 .github/skills）\ncp -r dotnet-testing-agent-skills/skills /your-project/.github/\n\n# 3. 在 VS Code 中啟用 Agent Skills\n# 設定 → 搜尋 \"chat.useAgentSkills\" → 勾選啟用\n```\n\n**Windows (PowerShell)**\n```powershell\n# 1. Clone 此 repo\ngit clone https://github.com/kevintsengtw/dotnet-testing-agent-skills.git\n\n# 2. 複製到您的專案（GitHub Copilot 使用 .github/skills）\nCopy-Item -Path \"dotnet-testing-agent-skills\\skills\" -Destination \"\\your-project\\.github\\\" -Recurse\n\n# 3. 在 VS Code 中啟用 Agent Skills\n# 設定 → 搜尋 \"chat.useAgentSkills\" → 勾選啟用\n```\n\n#### 複製到 Claude Code\n\n**Linux / macOS (Bash)**\n```bash\n# 複製到 Claude Code 工作區 skills\ncp -r dotnet-testing-agent-skills/skills /your-project/.claude/\n\n# 或複製到全域 skills\ncp -r dotnet-testing-agent-skills/skills ~/.config/claude/\n```\n\n**Windows (PowerShell)**\n```powershell\n# 複製到 Claude Code 工作區 skills\nCopy-Item -Path \"dotnet-testing-agent-skills\\skills\" -Destination \"\\your-project\\.claude\\\" -Recurse\n\n# 或複製到全域 skills\nCopy-Item -Path \"dotnet-testing-agent-skills\\skills\" -Destination \"$env:APPDATA\\claude\\\" -Recurse\n```\n\n### 方法三：Git Submodule\n\n```bash\ncd /your-project\n\n# 對 GitHub Copilot：加入 submodule 到 .github/skills\ngit submodule add https://github.com/kevintsengtw/dotnet-testing-agent-skills .github/skills\ncd .github/skills \u0026\u0026 cp -r skills/* . \u0026\u0026 cd ../..\n\n# 對 Claude Code：加入 submodule 到 .claude/skills\ngit submodule add https://github.com/kevintsengtw/dotnet-testing-agent-skills .claude/skills\ncd .claude/skills \u0026\u0026 cp -r skills/* . \u0026\u0026 cd ../..\n```\n\n### 方法四：選擇性複製\n\n只需要特定技能？\n\n#### Linux / macOS (Bash)\n\n```bash\n# 只複製單元測試基礎\ncp -r dotnet-testing-agent-skills/skills/dotnet-testing-unit-test-fundamentals /your-project/.github/skills/\n\n# 只複製 AutoFixture 系列\ncp -r dotnet-testing-agent-skills/skills/dotnet-testing-autofixture-* /your-project/.github/skills/\n\n# 只複製總覽 skills\ncp -r dotnet-testing-agent-skills/skills/dotnet-testing /your-project/.github/skills/\ncp -r dotnet-testing-agent-skills/skills/dotnet-testing-advanced /your-project/.github/skills/\n```\n\n#### Windows (PowerShell)\n\n```powershell\n# 只複製單元測試基礎\nCopy-Item -Path \"dotnet-testing-agent-skills\\skills\\dotnet-testing-unit-test-fundamentals\" -Destination \"\\your-project\\.github\\skills\\\" -Recurse\n\n# 只複製 AutoFixture 系列\nGet-ChildItem -Path \"dotnet-testing-agent-skills\\skills\\dotnet-testing-autofixture-*\" | Copy-Item -Destination \"\\your-project\\.github\\skills\\\" -Recurse\n\n# 只複製總覽 skills\nCopy-Item -Path \"dotnet-testing-agent-skills\\skills\\dotnet-testing\" -Destination \"\\your-project\\.github\\skills\\\" -Recurse\nCopy-Item -Path \"dotnet-testing-agent-skills\\skills\\dotnet-testing-advanced\" -Destination \"\\your-project\\.github\\skills\\\" -Recurse\n```\n\n---\n\n## 目錄結構\n\n```text\nskills/\n├── dotnet-testing/                              # ⭐ 總覽：基礎技能導航（19 個子技能）\n├── dotnet-testing-advanced/                     # ⭐ 總覽：進階技能導航（8 個子技能）\n├── dotnet-testing-unit-test-fundamentals/\n├── dotnet-testing-test-naming-conventions/\n├── dotnet-testing-xunit-project-setup/\n├── dotnet-testing-awesome-assertions-guide/\n├── dotnet-testing-complex-object-comparison/\n├── dotnet-testing-code-coverage-analysis/\n├── dotnet-testing-nsubstitute-mocking/\n├── dotnet-testing-test-output-logging/\n├── dotnet-testing-private-internal-testing/\n├── dotnet-testing-fluentvalidation-testing/\n├── dotnet-testing-datetime-testing-timeprovider/\n├── dotnet-testing-filesystem-testing-abstractions/\n├── dotnet-testing-test-data-builder-pattern/\n├── dotnet-testing-autofixture-basics/\n├── dotnet-testing-autofixture-customization/\n├── dotnet-testing-autodata-xunit-integration/\n├── dotnet-testing-autofixture-nsubstitute-integration/\n├── dotnet-testing-bogus-fake-data/\n├── dotnet-testing-autofixture-bogus-integration/\n├── dotnet-testing-advanced-aspnet-integration-testing/\n├── dotnet-testing-advanced-testcontainers-database/\n├── dotnet-testing-advanced-testcontainers-nosql/\n├── dotnet-testing-advanced-webapi-integration-testing/\n├── dotnet-testing-advanced-aspire-testing/\n├── dotnet-testing-advanced-xunit-upgrade-guide/\n├── dotnet-testing-advanced-tunit-fundamentals/\n└── dotnet-testing-advanced-tunit-advanced/\n```\n\n\u003e **注意**：\n\u003e - Skills 採用扁平結構，使用前綴命名來區分基礎技能 (`dotnet-testing-*`) 與進階技能 (`dotnet-testing-advanced-*`)\n\u003e - ⭐ 兩個總覽 skills 提供智能導航，自動推薦適合的子技能組合\n\u003e - 安裝後，skills 會根據目標環境複製到對應位置（`.github/skills/` 或 `.claude/skills/`）\n\n---\n\n## 📖 快速參考指南（推薦）\n\n為了讓您快速上手並充分運用這些 skills，我們提供了完整的參考指南：\n\n### `SKILLS_QUICK_REFERENCE.md`\n\n**Skills 快速參考指南** - 給開發者的速查手冊\n\n- 📊 **快速查詢表**：任務 → Skills → 範例 Prompt\n- 🎯 **情境組合**：3 個完整的實際使用情境\n- 💬 **Prompt 模板**：可直接複製使用的對話範例\n- 📚 **完整清單**：所有 27 個 skills 的索引\n\n**使用方式**：\n```bash\n# 方法 1：複製為參考檔（推薦）\ncp SKILLS_QUICK_REFERENCE.md /your-project/SKILLS_QUICK_REFERENCE.md\n\n# 方法 2：整合到既有文件\n# 如果專案已有類似的參考文件，建議手動將內容整合進去\n```\n\n**👉 為什麼需要這個指南？**\n\n雖然總覽 skills (`dotnet-testing` 和 `dotnet-testing-advanced`) 提供智能導航，但快速參考指南能：\n\n1. ✅ **快速查詢**：不確定用哪個 skill 時立即找到答案\n2. ✅ **範例 Prompt**：提供可直接複製使用的對話範例\n3. ✅ **情境組合**：展示實際的多 skill 搭配使用案例\n4. ✅ **降低學習門檻**：不需記住所有 skill 名稱\n\n---\n\n## 技能清單\n\n### 🎯 總覽技能 (2 個) - 新增！\n\n\u003e **NEW!** 兩個總覽 skills 提供智能導航，當您不確定使用哪個技能時，它們會自動分析需求並推薦適合的技能組合。\n\n| 技能 | 說明 | 何時使用 |\n|------|------|---------|\n| `dotnet-testing` | 基礎測試技能總覽與引導中心 | 詢問「如何寫 .NET 測試」、「測試入門」等一般性問題時自動觸發 |\n| `dotnet-testing-advanced` | 進階測試技能總覽與引導中心 | 詢問「整合測試」、「API 測試」、「微服務測試」等進階需求時自動觸發 |\n\n**總覽 skills 的價值**：\n- ✅ **智能推薦**：根據您的具體需求，推薦 1-4 個最適合的子技能組合\n- ✅ **學習路徑**：提供循序漸進的學習建議（新手路徑、進階路徑）\n- ✅ **決策支援**：透過決策樹快速找到需要的技能\n- ✅ **範例導向**：每個任務都有完整的提示詞範例\n\n### 基礎技能 (19 個)\n\n\u003cdetails\u003e\n\u003csummary\u003e第一階段：測試基礎與斷言 (10 個)\u003c/summary\u003e\n\n| 技能 | 說明 |\n|------|------|\n| `dotnet-testing-unit-test-fundamentals` | FIRST 原則、3A Pattern、測試金字塔 |\n| `dotnet-testing-test-naming-conventions` | 三段式命名法、中文命名建議 |\n| `dotnet-testing-xunit-project-setup` | xUnit 專案結構、配置、套件管理 |\n| `dotnet-testing-awesome-assertions-guide` | FluentAssertions 流暢斷言 |\n| `dotnet-testing-complex-object-comparison` | 深層物件比對技巧 |\n| `dotnet-testing-code-coverage-analysis` | Coverlet 覆蓋率分析與報告 |\n| `dotnet-testing-nsubstitute-mocking` | Mock/Stub/Spy 測試替身 |\n| `dotnet-testing-test-output-logging` | ITestOutputHelper 與 ILogger 整合 |\n| `dotnet-testing-private-internal-testing` | Private/Internal 成員測試策略 |\n| `dotnet-testing-fluentvalidation-testing` | FluentValidation 驗證器測試 |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e第二階段：可測試性抽象化 (2 個)\u003c/summary\u003e\n\n| 技能 | 說明 |\n|------|------|\n| `dotnet-testing-datetime-testing-timeprovider` | TimeProvider 時間抽象化 |\n| `dotnet-testing-filesystem-testing-abstractions` | System.IO.Abstractions 檔案系統測試 |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e第三階段：測試資料生成 (7 個)\u003c/summary\u003e\n\n| 技能 | 說明 |\n|------|------|\n| `dotnet-testing-test-data-builder-pattern` | 手動 Builder Pattern |\n| `dotnet-testing-autofixture-basics` | AutoFixture 基礎與匿名測試資料 |\n| `dotnet-testing-autofixture-customization` | AutoFixture 自訂化策略 |\n| `dotnet-testing-autodata-xunit-integration` | AutoData 與 xUnit Theory 整合 |\n| `dotnet-testing-autofixture-nsubstitute-integration` | AutoFixture + NSubstitute 自動模擬 |\n| `dotnet-testing-bogus-fake-data` | Bogus 擬真資料產生 |\n| `dotnet-testing-autofixture-bogus-integration` | AutoFixture 與 Bogus 整合 |\n\n\u003c/details\u003e\n\n### 進階技能 (8 個)\n\n\u003cdetails\u003e\n\u003csummary\u003e第四階段：整合測試 (5 個)\u003c/summary\u003e\n\n| 技能 | 說明 |\n|------|------|\n| `dotnet-testing-advanced-aspnet-integration-testing` | WebApplicationFactory 整合測試 |\n| `dotnet-testing-advanced-testcontainers-database` | PostgreSQL/MSSQL 容器化測試 |\n| `dotnet-testing-advanced-testcontainers-nosql` | MongoDB/Redis 容器化測試 |\n| `dotnet-testing-advanced-webapi-integration-testing` | WebAPI 完整整合測試流程 |\n| `dotnet-testing-advanced-aspire-testing` | .NET Aspire Testing 框架 |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e第五階段：框架遷移 (3 個)\u003c/summary\u003e\n\n| 技能 | 說明 |\n|------|------|\n| `dotnet-testing-advanced-xunit-upgrade-guide` | xUnit 2.9.x → 3.x 升級指南 |\n| `dotnet-testing-advanced-tunit-fundamentals` | TUnit 新世代測試框架入門 |\n| `dotnet-testing-advanced-tunit-advanced` | TUnit 進階應用 |\n\n\u003c/details\u003e\n\n---\n\n## 使用範例\n\n設定完成後，您只需要自然地對話：\n\n```text\n👤：幫我建立一個 xUnit 測試專案\n\n🤖：[自動載入 dotnet-testing-xunit-project-setup 技能]\n    我將協助您建立標準的 xUnit 測試專案結構...\n    \n    1. 建立專案檔案\n    2. 配置必要套件\n    3. 設定測試執行環境\n```\n\n```text\n👤：為這個 Service 寫單元測試，它有依賴需要 Mock\n\n🤖：[自動載入 dotnet-testing-unit-test-fundamentals + dotnet-testing-nsubstitute-mocking 技能]\n    根據測試最佳實踐，我將建立符合 3A Pattern 的測試...\n```\n\n更多使用情境請參考 [完整使用手冊](SKILLS_USAGE_GUIDE.md)。\n\n---\n\n## 學習資源\n\n### 原始內容\n\n這些 Agent Skills 是從以下內容提煉而成：\n\n- 📖 **iThome 鐵人賽系列文章**：[老派軟體工程師的測試修練 - 30 天挑戰](https://ithelp.ithome.com.tw/users/20066083/ironman/8276)  \n  🏆 2025 iThome 鐵人賽 Software Development 組冠軍\n  \n- 💻 **完整範例程式碼**：[30Days_in_Testing_Samples](https://github.com/kevintsengtw/30Days_in_Testing_Samples)  \n  包含所有範例專案的可執行程式碼\n\n### 深入學習文件\n\n本專案提供五份完整的 Agent Skills 教學文件，幫助你深入理解如何打造專業的 AI 技能包：\n\n- **[Agent Skills：從架構設計到實戰應用](docs/Agent_Skills_Mastery.pdf)**  \n  完整涵蓋 Agent Skills 從理論到實踐的系統性教材。整合架構設計、模組化設計與實戰應用，提供從基礎概念到進階整合的完整學習路徑。\n\n- **[Claude Code Skills: 讓 AI 變身專業工匠](docs/Agent_Skills_Architecture.pdf)**  \n  深入解析 Agent Skills 的架構設計、運作原理與最佳實踐。從基礎概念到進階應用，完整說明如何將 AI 從通才訓練成專才。\n\n- **[Agent Skills: 打造模組化 AI 專業技能包](docs/Agent_Skills_Modular_Mastery.pdf)**  \n  詳細說明如何設計模組化的技能結構，包含 SKILL.md 撰寫規範、漸進式揭露機制、以及與其他客製化工具（Custom Instructions、MCP、Prompt Files）的比較與整合。\n\n- **[Agent Skills 實戰: 打造 .NET 測試自動化專家](docs/Agent_Skills_.NET_Testing_Expert.pdf)**  \n  從零開始的實作教學，一步步引導你建立第一個 Agent Skill。涵蓋完整的開發流程、觸發機制、以及如何在 VS Code 中成功啟用並測試你的技能。\n\n- **[.NET Testing：寫得更好、跑得更快](docs/NET_Testing_Write_Better_Run_Faster.pdf)**  \n  結合 NikiforovAll 的 `dotnet-test` skill，專注於測試執行優化與除錯。教你如何使用 Build-First 策略提升效能、透過精準過濾執行特定測試案例、以及運用 Blame Mode (`--blame-hang` / `--blame-crash`) 診斷測試卡死或崩潰問題。此技能可與 `kevintsengtw/dotnet-testing-agent-skills` 互補，前者專注於「如何執行測試」，後者專注於「如何撰寫測試」。  \n  **相關資源**：[NikiforovAll dotnet-test skill](https://github.com/NikiforovAll/claude-code-rules/tree/main/plugins/handbook-dotnet/skills/dotnet-test) | [2 MUST USE features for dotnet test debugging](https://www.youtube.com/watch?v=JTmIO21KmGw)\n\n### 30 天挑戰完整索引\n\n\u003cdetails\u003e\n\u003csummary\u003e📚 第一階段：測試基礎與斷言 (Day 01-09)\u003c/summary\u003e\n\n| Day | 主題 | 文章 | 範例 |\n|-----|------|------|------|\n| 01 | 老派工程師的測試啟蒙 - 為什麼我們需要測試？ | [連結](https://ithelp.ithome.com.tw/articles/10373888) | [day01/](https://github.com/kevintsengtw/30Days_in_Testing_Samples/tree/main/day01) |\n| 02 | xUnit 框架深度解析 - 從生態概觀到實戰專案 | [連結](https://ithelp.ithome.com.tw/articles/10373952) | [day02/](https://github.com/kevintsengtw/30Days_in_Testing_Samples/tree/main/day02) |\n| 03 | xUnit 進階功能與測試資料管理 | [連結](https://ithelp.ithome.com.tw/articles/10374064) | [day03/](https://github.com/kevintsengtw/30Days_in_Testing_Samples/tree/main/day03) |\n| 04 | AwesomeAssertions 基礎應用與實戰技巧 | [連結](https://ithelp.ithome.com.tw/articles/10374188) | [day04/](https://github.com/kevintsengtw/30Days_in_Testing_Samples/tree/main/day04) |\n| 05 | AwesomeAssertions 進階技巧與複雜情境應用 | [連結](https://ithelp.ithome.com.tw/articles/10374425) | [day05/](https://github.com/kevintsengtw/30Days_in_Testing_Samples/tree/main/day05) |\n| 06 | Code Coverage 程式碼涵蓋範圍實戰指南 | [連結](https://ithelp.ithome.com.tw/articles/10374467) | - |\n| 07 | 依賴替代入門 - 使用 NSubstitute | [連結](https://ithelp.ithome.com.tw/articles/10374593) | [day07/](https://github.com/kevintsengtw/30Days_in_Testing_Samples/tree/main/day07) |\n| 08 | 測試輸出與記錄 - xUnit ITestOutputHelper 與 ILogger | [連結](https://ithelp.ithome.com.tw/articles/10374711) | [day08/](https://github.com/kevintsengtw/30Days_in_Testing_Samples/tree/main/day08) |\n| 09 | 測試私有與內部成員 - Private 與 Internal 的測試策略 | [連結](https://ithelp.ithome.com.tw/articles/10374866) | [day09/](https://github.com/kevintsengtw/30Days_in_Testing_Samples/tree/main/day09) |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e🔧 第二階段：測試資料生成 (Day 10-18)\u003c/summary\u003e\n\n| Day | 主題 | 文章 | 範例 |\n|-----|------|------|------|\n| 10 | AutoFixture 基礎：自動產生測試資料 | [連結](https://ithelp.ithome.com.tw/articles/10375018) | [day10/](https://github.com/kevintsengtw/30Days_in_Testing_Samples/tree/main/day10) |\n| 11 | AutoFixture 進階：自訂化測試資料生成策略 | [連結](https://ithelp.ithome.com.tw/articles/10375153) | [day11/](https://github.com/kevintsengtw/30Days_in_Testing_Samples/tree/main/day11) |\n| 12 | 結合 AutoData：xUnit 與 AutoFixture 的整合應用 | [連結](https://ithelp.ithome.com.tw/articles/10375296) | [day12/](https://github.com/kevintsengtw/30Days_in_Testing_Samples/tree/main/day12) |\n| 13 | NSubstitute 與 AutoFixture 的整合應用 | [連結](https://ithelp.ithome.com.tw/articles/10375419) | [day13/](https://github.com/kevintsengtw/30Days_in_Testing_Samples/tree/main/day13) |\n| 14 | Bogus 入門：與 AutoFixture 的差異比較 | [連結](https://ithelp.ithome.com.tw/articles/10375501) | [day14/](https://github.com/kevintsengtw/30Days_in_Testing_Samples/tree/main/day14) |\n| 15 | AutoFixture 與 Bogus 的整合應用 | [連結](https://ithelp.ithome.com.tw/articles/10375620) | [day15/](https://github.com/kevintsengtw/30Days_in_Testing_Samples/tree/main/day15) |\n| 16 | 測試日期與時間：Microsoft.Bcl.TimeProvider 取代 DateTime | [連結](https://ithelp.ithome.com.tw/articles/10375821) | [day16/](https://github.com/kevintsengtw/30Days_in_Testing_Samples/tree/main/day16) |\n| 17 | 檔案與 IO 測試：使用 System.IO.Abstractions 模擬檔案系統 | [連結](https://ithelp.ithome.com.tw/articles/10375981) | [day17/](https://github.com/kevintsengtw/30Days_in_Testing_Samples/tree/main/day17) |\n| 18 | 驗證測試：FluentValidation Test Extensions | [連結](https://ithelp.ithome.com.tw/articles/10376147) | [day18/](https://github.com/kevintsengtw/30Days_in_Testing_Samples/tree/main/day18) |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e🔗 第三階段：整合測試 (Day 19-25)\u003c/summary\u003e\n\n| Day | 主題 | 文章 | 範例 |\n|-----|------|------|------|\n| 19 | 整合測試入門：基礎架構與應用場景 | [連結](https://ithelp.ithome.com.tw/articles/10376335) | [day19/](https://github.com/kevintsengtw/30Days_in_Testing_Samples/tree/main/day19) |\n| 20 | Testcontainers 初探：使用 Docker 架設測試環境 | [連結](https://ithelp.ithome.com.tw/articles/10376401) | [day20/](https://github.com/kevintsengtw/30Days_in_Testing_Samples/tree/main/day20) |\n| 21 | Testcontainers 整合測試：MSSQL + EF Core 以及 Dapper | [連結](https://ithelp.ithome.com.tw/articles/10376524) | [day21/](https://github.com/kevintsengtw/30Days_in_Testing_Samples/tree/main/day21) |\n| 22 | Testcontainers 整合測試：MongoDB 及 Redis 基礎到進階 | [連結](https://ithelp.ithome.com.tw/articles/10376740) | [day22/](https://github.com/kevintsengtw/30Days_in_Testing_Samples/tree/main/day22) |\n| 23 | 整合測試實戰：WebApi 服務的整合測試 | [連結](https://ithelp.ithome.com.tw/articles/10376873) | [day23/](https://github.com/kevintsengtw/30Days_in_Testing_Samples/tree/main/day23) |\n| 24 | .NET Aspire Testing 入門基礎介紹 | [連結](https://ithelp.ithome.com.tw/articles/10377071) | [day24/](https://github.com/kevintsengtw/30Days_in_Testing_Samples/tree/main/day24) |\n| 25 | .NET Aspire 整合測試實戰：從 Testcontainers 到 Aspire | [連結](https://ithelp.ithome.com.tw/articles/10377197) | [day25/](https://github.com/kevintsengtw/30Days_in_Testing_Samples/tree/main/day25) |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e🚀 第四階段：框架遷移與進階應用 (Day 26-30)\u003c/summary\u003e\n\n| Day | 主題 | 文章 | 範例 |\n|-----|------|------|------|\n| 26 | xUnit 升級指南：從 2.9.x 到 3.x 的轉換 | [連結](https://ithelp.ithome.com.tw/articles/10377477) | [day26/](https://github.com/kevintsengtw/30Days_in_Testing_Samples/tree/main/day26) |\n| 27 | GitHub Copilot 測試實戰：AI 輔助測試開發指南 | [連結](https://ithelp.ithome.com.tw/articles/10377577) | [day27/](https://github.com/kevintsengtw/30Days_in_Testing_Samples/tree/main/day27) |\n| 28 | TUnit 入門 - 下世代 .NET 測試框架探索 | [連結](https://ithelp.ithome.com.tw/articles/10377828) | [day28/](https://github.com/kevintsengtw/30Days_in_Testing_Samples/tree/main/day28) |\n| 29 | TUnit 進階應用：資料驅動測試與依賴注入深度實戰 | [連結](https://ithelp.ithome.com.tw/articles/10377970) | [day29/](https://github.com/kevintsengtw/30Days_in_Testing_Samples/tree/main/day29) |\n| 30 | TUnit 進階應用 - 執行控制與測試品質和 ASP.NET Core 整合 | [連結](https://ithelp.ithome.com.tw/articles/10378176) | [day30/](https://github.com/kevintsengtw/30Days_in_Testing_Samples/tree/main/day30) |\n\n\u003c/details\u003e\n\n### 學習路徑\n\n```mermaid\ngraph LR\n    A[📖 閱讀文章] --\u003e B[💻 執行範例] --\u003e C[🤖 使用 Agent Skills]\n    A --\u003e D[理解概念]\n    B --\u003e E[實作練習]\n    C --\u003e F[AI 輔助開發]\n    \n    style A fill:#e1f5ff\n    style B fill:#fff4e1\n    style C fill:#e8f5e9\n    style D fill:#f3e5f5\n    style E fill:#fff9c4\n    style F fill:#f1f8e9\n```\n\n---\n\n## 環境需求\n\n### 基礎技能\n\n- .NET 8.0 SDK 或更新版本\n- VS Code / Visual Studio / Rider\n- GitHub Copilot 或其他支援 Agent Skills 的 AI 助理\n\n### 進階技能（整合測試）\n\n- Docker Desktop\n- WSL2（Windows 環境）\n- .NET Aspire Workload（用於 Aspire Testing）\n\n---\n\n## 支援的 AI 平台\n\n| 平台 | 支援狀態 | 說明 |\n|------|---------|------|\n| GitHub Copilot (VS Code) | ✅ 完整支援 | 需啟用 Agent Mode |\n| GitHub Copilot CLI | ✅ 完整支援 | - |\n| Claude Code CLI | ✅ 完整支援 | 使用 `/plugin` 指令 |\n| Cursor | ✅ 完整支援 | - |\n| Claude.ai (Web) | ⚠️ 部分支援 | 需手動貼上技能內容 |\n\n---\n\n## 相關連結\n\n- **完整使用手冊**：[SKILLS_USAGE_GUIDE.md](SKILLS_USAGE_GUIDE.md)\n- **Agent Skills 標準**：[agentskills.io](https://agentskills.io)\n- **GitHub Copilot Agent Skills 文件**：[官方說明](https://docs.github.com/copilot/using-github-copilot/using-github-copilot-agent-skills)\n\n---\n\n## 🛠️ 技能組合建議\n\n### 新手入門\n\n```mermaid\ngraph LR\n    A[dotnet-testing-unit-test-fundamentals] --\u003e B[dotnet-testing-test-naming-conventions]\n    B --\u003e C[dotnet-testing-xunit-project-setup]\n    C --\u003e D[dotnet-testing-awesome-assertions-guide]\n    \n    style A fill:#e3f2fd\n    style B fill:#e8f5e9\n    style C fill:#fff3e0\n    style D fill:#f3e5f5\n```\n\n### 效率提升\n\n```mermaid\ngraph LR\n    A[dotnet-testing-autofixture-basics] --\u003e B[dotnet-testing-autofixture-customization]\n    B --\u003e C[dotnet-testing-autofixture-nsubstitute-integration]\n    C --\u003e D[dotnet-testing-autodata-xunit-integration]\n    \n    style A fill:#e1f5ff\n    style B fill:#e8f5e9\n    style C fill:#fff9c4\n    style D fill:#f1f8e9\n```\n\n### 整合測試\n\n```mermaid\ngraph LR\n    A[dotnet-testing-advanced-aspnet-integration-testing] --\u003e B[dotnet-testing-advanced-testcontainers-database]\n    B --\u003e C[dotnet-testing-advanced-webapi-integration-testing]\n    C --\u003e D[dotnet-testing-advanced-aspire-testing]\n    \n    style A fill:#e8eaf6\n    style B fill:#e0f2f1\n    style C fill:#fff8e1\n    style D fill:#fce4ec\n```\n\n---\n\n## 貢獻\n\n歡迎提交 Issues 和 Pull Requests！\n\n如果您發現技能內容有誤或想要新增新技能，請：\n1. Fork 本專案\n2. 建立您的 feature branch\n3. 提交 Pull Request\n\n---\n\n## 授權\n\nMIT License - 自由使用與修改\n\n---\n\n## 致謝\n\n感謝所有在 iThome 鐵人賽期間給予支持與回饋的讀者們！\n\n---\n\n**作者**：Kevin Tseng  \n**最後更新**：2026-01-20  \n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevintsengtw%2Fdotnet-testing-agent-skills","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkevintsengtw%2Fdotnet-testing-agent-skills","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevintsengtw%2Fdotnet-testing-agent-skills/lists"}