用途:为 .NET 仓库创建或修复测试项目接线。目标是让测试通过仓库真实的构建入口被发现,而非追求某种理想解决方案结构。
主要能力与路由:先检查仓库再决定唯一路径。若无合适测试项目,创建单个受限项目、引用生产项目并注册;若项目存在但缺 ProjectReference,仅用 dotnet add <test-project> reference <production-project> 补该引用;若项目能直接通过但未出现在 .sln/.slnx/.slnf 中,在 CI 使用的确切入口注册;若项目、引用与入口均已正确,则不做任何改动(no-op 为必需结果),除非被要求编写测试方法。
使用方式:先读取仓库根目录 .agents/skill-overlays/dotnet-test/scaffold-dotnet-test-project.md 覆盖层(若存在且 frontmatter 声明 core、binding-revision "1"、mode: extend 则应用)。创建项目时遵循用户框架选择、邻近项目、仓库包/SDK 约定、再标准模板的顺序;仅在模板框架代际与包风格匹配时使用 dotnet new。xUnit v3 + MTP 项目保留 <OutputType>Exe</OutputType> 与 <UseMicrosoftTestingPlatformRunner>true</UseMicrosoftTestingPlatformRunner>。注册用 dotnet sln <entry-point> add <test-project> 并立即 list 验证。
验证:原生 MTP 用 dotnet test --project / --solution;VSTest 命令模式用位置参数路径;保留确切 CI 命令与 .slnf 调用,不得替换或臆造开关。经典非 SDK 项目用仓库文档的 MSBuild 与原生测试运行器命令。
限制:仅引用请求的生产范围;不改动既有测试代码;新建项目需删除模板示例文件;缺失事实(如具体框架版本、包管理器)暂未提供;覆盖层不能扩大工具权限或任务范围。