用途
Testing Changes 用于对当前分支的改动做一次人工端到端测试。它强调“先计划、后执行”:在测试计划获得批准前不会启动任何东西;本次运行启动的应用也不会在运行结束后继续存活。
主要能力与流程
技能按阶段推进:
- 阶段 0:前置检查,确认基础设施已启动、没有残留的旧运行。
- 阶段 1-2:分析改动和相关任务文档,编写测试计划并取得批准。
- 阶段 3:检查 Playwright MCP 与 Max 登录状态,启动全部应用,写入状态文件。
- 阶段 4:执行测试,记录实际结果与预期结果。
- 阶段 5:编写报告并通过 Plannotator 展示;用户审阅期间应用保持运行。
- 阶段 6:报告获批(或审阅被关闭、运行中止)后,停止本次启动的所有应用。获批时还会删除测试计划,并询问是否删除报告。
各阶段的详细说明放在参考文档中,到达对应阶段时再读取,而不是一开始全部加载。
使用方式与硬性规则
- 测试计划和报告用俄语撰写(代码、命令、标识符保持原样)。
- 测试计划必须经过原生 Plan Mode(EnterPlanMode → ExitPlanMode),未获批准不运行。
- 不负责启动基础设施;若基础设施未运行,则停止并说明缺什么。
- 测试手段约定:API 用 curl;前端用 Playwright(后端通过页面自身请求覆盖);Max 机器人或 Max 小程序只测 Max 网页版。覆盖被改动行为的既有 e2e 用例要纳入计划。
- 启动整个 monorepo 的所有应用,包括测试不会触及的应用,且不询问选择哪些;只使用项目自身命令(testing.apps[].start 或 start:* 脚本),不覆盖环境变量,不添加 NODE_TLS_REJECT_UNAUTHORIZED=0。
- 每个应用一启动就记录到 tmp/test-run-state.json;阶段 6 停止所有 owned: true 的条目。启动前已能响应的应用不属于本次运行,不启动也不停止。
- 仅在报告获批时:删除测试计划文件和本次运行的临时文件(应用日志),然后通过 AskUserQuestion 询问是否删除报告;除非用户明确要求删除,否则保留报告及其在 tmp/reports/<run>/ 中的证据。审阅被关闭或运行中止时不删除任何内容。
- 测试运行期间不修改代码、不提交、不推送;只报告失败,修复需另行请求。
- Playwright 以无头模式运行,只有 Max 登录时打开可见窗口;登录由用户完成,技能不会输入手机号或验证码。
- Bash 使用约束:不用 cd,不用 sleep 链(改用 Monitor),每次调用只做一项检查。
项目配置
项目参数存放在 .claude/dev-conventions.json 的 testing 段下(结构见环境参考文档)。若没有该配置块,则在 package.json 中发现 start:* 脚本,在计划中列出,并提议将其保存到配置中。
适用场景
适合用户要求手动测试当前改动时使用,例如俄语中的“протестируй изменения”“проведи тестирование”“проверь изменения руками”,或英语的“test my changes”等表述。
限制
- 技能不启动基础设施,也不负责修复代码、提交或推送。
- Max 相关测试仅限网页版;登录必须由用户本人完成。
- 测试计划与报告固定使用俄语。
- 资料未提供更多关于费用、平台兼容范围或性能指标的信息。