ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

dotnet/skills run-tests技能指南:AI自动识别测试平台并执行测试

dotnet/skills run-tests技能指南:AI自动识别测试平台并执行测试 dotnet/skills run-tests技能指南AI自动识别测试平台并执行测试【免费下载链接】skillsRepository for skills to assist AI coding agents with .NET and C#项目地址: https://gitcode.com/GitHub_Trending/skills17/skillsskills 是 .NET 团队维护的 AI 编程代理AI Coding Agent技能库其dotnet-test插件中的run-tests 技能能让 AI 自动识别 .NET 项目的测试平台VSTest / Microsoft.Testing.Platform简称 MTP、测试框架MSTest、xUnit、NUnit、TUnit与项目系统SDK 风格 / 经典项目并生成、执行一条与仓库完全兼容的dotnet test命令。对于新手来说这意味着你只需用自然语言说帮我跑一下测试AI 就会替你解决平台、参数、过滤语法这些繁琐问题。一、run-tests 技能是什么run-tests 是 dotnet-test 插件 中负责测试执行的核心技能完整规则定义在 plugins/dotnet-test/skills/run-tests/SKILL.md。它同时回答两类问题你的需求技能的响应方式帮我运行测试自动探测仓库命令并执行最小测试范围给我一条 dotnet test 命令只检查必要文件返回一条可直接运行的命令只跑 net9.0 / 某个类 / 某个分类按目标框架、类、分类或 trait 精确过滤要 TRX 报告 / 崩溃转储 / 覆盖率追加对应平台正确的报告与诊断参数技能内部还有一条清晰的分工边界见 SKILL.md 的作用范围表避免 AI越权只识别平台、不执行 → 交给platform-detection技能热重载式改代码-重跑循环 → 交给mtp-hot-reload技能过滤语法不确定时才按需加载filter-syntax参考技能 设计亮点技能明确规定不要为了保险先 build 一遍dotnet test默认会构建也不会擅自给项目添加或升级测试包。二、自动识别测试平台一张决策表看懂AI 拿到你的请求后会依次查看global.json、.csproj、packages.config、Directory.Build.props、Directory.Packages.props等文件SKILL.md 输入清单然后依据决策表选择正确的命令形态检测到的模式命令形态绝不能做的事经典非 SDK 项目仓库脚本或 MSBuild vstest.console.exe/MSTest.exe假设dotnet test可用、擅自迁移VSTest 模式dotnet test [项目] [VSTEST_OPTIONS]混入--report-trx等 MTP 专属参数VSTest 桥接 MTPdotnet test [项目] -- [MTP_OPTIONS]漏掉--分隔符原生 MTPSDK 10dotnet test --project [项目] [MTP_OPTIONS]用位置参数传项目路径几个新手最容易踩坑的细节技能都已内置为硬性规则决策表原文global.json决定的是dotnet test的命令模式不等于实际执行平台--project只在 SDK 10 的原生 MTP 模式可用VSTest 模式和 SDK 8/9 桥接模式必须用位置参数--framework、--configuration、--no-build等 dotnet/MSBuild 参数必须放在--分隔符之前。三、新手速查常见测试命令示例不同模式下运行测试的命令对比摘自 SKILL.md 命令示例# VSTest 模式 dotnet test path/to/Tests.csproj # VSTest 桥接 MTPSDK 8/9 dotnet test path/to/Tests.csproj -- MTP_OPTIONS # 原生 MTP 模式SDK 10 dotnet test --project path/to/Tests.csproj MTP_OPTIONS # 多目标框架项目只跑 net9.0 dotnet test path/to/Tests.csproj --framework net9.0 -- MTP_OPTIONS按需过滤只说跑 OrderServiceTests 里的单元测试AI 会自动翻译成该框架正确的过滤表达式例如 VSTest 下组合类名与分类dotnet test --filter FullyQualifiedName~OrderServiceTestsTestCategoryUnit各框架的过滤语法差异详见 filter-syntax 参考平台 / 框架过滤方式VSTest MSTest / xUnit v2 / NUnit--filter 属性表达式MTP MSTest / NUnit同样的表达式桥接模式放--之后MTP xUnit v3--filter-class/--filter-method/--filter-trait或一条--filter-query组合表达式MTP TUnit--treenode-filter路径表达式四、报告与诊断TRX、崩溃转储、覆盖率测试跑挂了却不知道为什么挂run-tests 会按平台追加正确的诊断参数报告参数对照表想要的结果VSTest 参数MTP 参数TRX 结果报告--logger trx;LogFileNamexxx.trx--report-trx诊断日志--diag file--diagnostic --diagnostic-output-directory dir崩溃转储--blame-crash--crashdump挂起Hang转储--blame-hang --blame-hang-timeout 5min--hangdump --hangdump-timeout 5min代码覆盖率--collect Code Coverage--coverage例如测试偶发卡死对 AI 说加 5 分钟超时抓一下挂起的测试它在 SDK 10 原生 MTP 项目上会给出dotnet test --project Tests.csproj --report-trx --hangdump --hangdump-timeout 5min五、经典 .NET Framework 项目也能跑老项目packages.config、net472、显式Compile Include是很多团队的现实。run-tests 的立场非常克制不迁移、不升级沿用仓库自己的工具链nuget restore MySolution.sln MSBuild.exe MySolution.sln /t:Build /p:ConfigurationDebug vstest.console.exe path\to\MyTests.dll /TestAdapterPath:path\to\adapter\build\tfm经典项目命令序列原文若缺少必要工具链技能会明确告诉你缺什么而绝不会谎称测试已经跑过。六、如何安装与使用1. 获取仓库仓库为只读可直接克隆到本地git clone https://gitcode.com/GitHub_Trending/skills17/skills2. 在 AI 编程代理中安装插件步骤见 README.mdCopilot CLI / Claude Code/plugin marketplace add dotnet/skills然后/plugin install dotnet-testdotnet-agent-skills重启后用/skills查看已加载技能VS Code在settings.json中启用chat.plugins.enabled并添加dotnet/skills市场之后在 Copilot Chat 中用/plugins安装。3. 使用打开你的 .NET 项目直接对 AI 说帮我运行测试或给我只跑 net9.0 的 dotnet test 命令技能即自动激活插件清单见 plugin.json。七、质量保障技能如何被验证技能的行为并非凭感觉而是由一套自动化评测约束。tests/dotnet-test/run-tests/eval.yaml 定义了覆盖经典项目、VSTest、桥接/原生 MTP、xUnit v3、NUnit、TUnit、多目标框架、组合过滤、诊断与 TRX 等二十余个场景的测试用例逐一断言 AI 输出的命令是否与平台匹配、是否混用参数、是否违规执行。下图是仓库中技能评估流水线输出的结果报告示例可以直观看到每个技能的评测指标技能的输出契约Output contract同样严格执行请求必须回报Passed: N, Failed: N, Skipped: N的真实汇总过滤运行必须核对实际执行的测试名与数量过滤被忽略时要修正语法并重跑而不是报假成功。八、相关技能速查技能作用位置platform-detection只识别项目的测试平台与框架plugins/dotnet-test/skills/platform-detection/filter-syntax各框架过滤语法参考被 run-tests 按需加载plugins/dotnet-test/skills/filter-syntax/mtp-hot-reloadMTP 热重载改代码免重跑plugins/dotnet-test/skills/mtp-hot-reload/coverage-analysis覆盖率收集 CRAP 风险评分plugins/dotnet-test/skills/coverage-analysis/dotnet-test-migration测试框架/平台迁移MSTest、xUnit 升级等plugins/dotnet-test-migration/九、常见问题 FAQQ1只想看命令不想让 AI 真正执行可以吗可以。明确说不要运行只给我命令技能会只检查必要的文件、返回一条可运行命令加一句简短语法说明不做 restore、不构建、不执行。Q2为什么 AI 之前给我的--report-trx在 VSTest 项目上报错--report-trx是 MTP 专属参数。VSTest 模式应使用--logger trx;LogFileNamexxx.trx。run-tests 的评测用例专门拦截了这种跨平台混用见 eval.yaml 的 TRX 场景。Q3测试挂起、崩溃怎么办直接描述症状例如测试偶发卡死帮我抓 5 分钟超时的转储技能会自动选择该平台的正确参数--blame-hang/--hangdump。Q4只识别这个项目用的是什么测试平台会顺便把测试跑了吗不会。仅识别类请求会路由给platform-detection不会进入执行流程。十、小结run-tests 技能把跑 .NET 测试中最难的平台与框架识别交给了 AIVSTest、MTP 桥接、原生 MTP 与经典项目四种形态都能正确处理命令示例、过滤语法、TRX / 诊断 / 覆盖率参数都有平台对照表约束避免跨平台参数混用的经典错误技能行为由 tests/dotnet-test/run-tests/eval.yaml 的自动化评测持续验证输出结果真实可核对配合 platform-detection、mtp-hot-reload、coverage-analysis 等兄弟技能构成完整的 .NET 测试工作流。安装好 dotnet-test 插件后下一次帮我跑测试就交给 AI 吧 【免费下载链接】skillsRepository for skills to assist AI coding agents with .NET and C#项目地址: https://gitcode.com/GitHub_Trending/skills17/skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表