用途:验证已有测试能否复现并捕获缺陷。该技能只做验证,不用于编写新测试、普通运行测试或代码审查。
主要能力:自动从改动文件识别测试类型并分发到对应运行器:UITest 使用 BuildAndRunHostApp.ps1,DeviceTest 使用 Run-DeviceTests.ps1,UnitTest 与 XamlUnitTest 使用 dotnet test。-Platform 对 UI 和设备测试必填;单元与 XAML 测试不需要。
两种模式:仅验证失败模式(无修复文件)只需测试文件,运行后测试应失败,以证明能捕获缺陷;完整验证模式(检测到修复文件)先在回退修复的状态下运行(应失败),再恢复修复运行(应通过)。可用 -RequireFullVerification 强制要求存在修复文件。
使用方式:运行 pwsh .github/skills/verify-tests-fail-without-fix/scripts/verify-tests-fail.ps1,可加 -Platform、-TestFilter、-TestType、-FixFiles、-BaseBranch 等参数。关键语义相反:测试失败为通过(捕获缺陷),测试通过为失败(未捕获缺陷)。脚本自行管理修复文件的回退与恢复,不要手动执行 git checkout、git clean、git restore、git reset、git stash 或反向 apply;若工作区出现异常改动,应报告为阻塞。
输出:生成 verification-report.md、verification-log.txt、test-without-fix.log、test-with-fix.log 等文件,以及 UITests、DeviceTests、UnitTests 日志目录。PR 编号可从分支名或 gh pr view 推断。错误、超时或异常改动均报告为阻塞。