用途:针对失败或偶发失败的测试,回答三个问题:实际发生了什么、属于哪类失败、最小正确修复是什么以及由谁负责。以 Playwright 为首选输入,同时接受 JUnit XML 与重跑历史,支持 Jest、pytest 等运行器。核心原则是只诊断和提议,任何代码改动与隔离动作都需人工批准,避免用错误自动修复掩盖真实产品缺陷。
主要能力:按证据依次分类为 PRODUCT(应用损坏或间歇损坏)、TEST(测试假设错误)、ENVIRONMENT(基础设施问题)、DATA(输入不符预期)、UNKNOWN(证据不足)。要求每条分类至少引用两个独立信号,否则归为 UNKNOWN 并给出后续探测。输出每个失败测试一份报告,含分类、确定性、证据、修复建议、责任人与是否建议隔离,证据需引用具体文件、行号、trace 条目或运行编号。还提供按类别的修复手册与可选的隔离协议。
必要用法:先收集机器可读报告与 trace,例如 npx playwright test --reporter=json > pw-report.json;查看 test-results/ 与 playwright-report/;用 gh run list 获取同一提交的重跑历史;Jest 与 pytest 可用 junit.xml。若项目未采集 trace,建议先加入 trace: 'retain-on-failure'、screenshot: 'only-on-failure'、video: 'retain-on-failure' 与重试配置。随后提取确定性、尝试模式、失败位置、耗时、网络、控制台、隔离性与并行相关性等信号,可用 npx playwright test failing.spec.ts --repeat-each=10 --retries=0 --workers=1 做确定性探测。
适用场景与限制:适合已有 Playwright 报告、trace 或 JUnit XML 的团队排查不稳定测试,并帮助区分产品竞态与测试问题。限制在于不自动改代码、不自动隔离;缺少 trace 时只能给出低置信度结论;分类需至少两个独立信号,证据不足会明确标为 UNKNOWN 并建议探测方式,不臆测置信度。