用途:为 TestFx 变更产出“可发布且回归确实执行”的证据,范围限定在被改动的契约内。构建成功、发现测试、发布 TRX 或任务变绿都不构成证明。
主要能力:
- 选择最小发布契约:记录生产者/消费者(项目、NuGet ID/版本、二进制、TFM/RID、SDK、发布分支)、生命周期(启动/连接/取消/释放、握手与故意缺失握手)、可观察结果(父子退出码、测试标识与数量、产物、回退规则)、范围与交付负责人。断言类改动只需聚焦单测;包布局、MSBuild 启动器、进程/协议、SDK 或独立组件改动需要打包消费者,而非 mock 或仓库内项目引用。
- 打包并建立来源:在 worktree 根运行 .\build.cmd -pack -c Release -bl(Linux/macOS 用 ./build.sh -pack -c Release -bl),立即捕获退出码,失败即停;每次源码改动后重新打包,禁止并发打包。记录提交/脏状态、包文件名与 SHA-256、消费者还原/构建命令、project.assets.json、加载/执行的二进制路径。
- 运行聚焦回归并验证执行:用唯一结果目录,保留日志与 binlog;先 --list-tests 发现,再执行,最后用标准库 Python 脚本 verify_execution.py 校验 TRX(--trx、--expected-tests、--started-after、--process-exit-code)。要求计划用例全部出现并通过、计数一致、运行开始时间新鲜、执行 ID 唯一、外层退出码为零;零测试、NotExecuted/跳过、缺模块、陈旧产物或非零退出均判失败。
- 证明 CI 任务会运行这些用例:检查 azure-pipelines.yml 及实际模板,追踪变更检测、SkipTests、配置、项目/模块选择、过滤器/类别、条件属性与环境。Windows 应用模型需交互式/提权 AppX 会话与相应工具;原生 .NET 10 需 TESTFX_DOTNET_10_PATH;WinApp 互操作需 TESTFX_RUN_WINAPP_CLI_INTEROP_TESTS=1 等。若任务被门控或前置缺失,应报告 CI 执行未证实/受阻。
- 保留证据并只清理自有状态。
限制:资料未提供该技能的安装命令、收费方式、支持平台清单与完整脚本内容;verify_execution.py 仅说明为标准库 Python。历史失败模式(#11614 缺类别、#11805 29 个 NotExecuted 与缺失 SDK 路径、#11804 打包宿主启动配置/发现路由)仅作示例,不构成修改指令。