用途:给定一个失败的测试,系统化定位根因并给出建议动作。调用方式为 /test-failure-investigator [test-name-or-file]。
主要能力与流程:第一步分类失败,连续运行测试三次,若稳定失败归为回归或环境,间歇失败归为 flaky,现在通过则视作瞬态并检查 CI 日志与环境差异;第二步缩小范围,查看相关源码文件的近期提交与差异、单测隔离运行、以及顺序执行(--runInBand);第三步根因分析,按症状对应可能原因,如超时对应网络/数据库依赖、断言不匹配对应逻辑变更、导入错误对应依赖变更、权限拒绝对应环境、内存不足对应资源泄漏(用 --detectOpenHandles 分析);第四步针对 flaky 测试运行 10 次确认,并检查共享状态、时间依赖、竞态、端口冲突、顺序依赖等常见原因;第五步输出失败报告,包含测试名、文件、分类、根因、首次失败的提交与日期、修复建议及验证状态。
适用场景:测试失败需要判断性质并定位原因时。可与 bug-reporting-excellence、regression-testing、qe-test-execution 组合使用。
限制与注意:代理可能未运行测试就猜测根因,务必先复现;“在我机器上能跑”不是诊断,需比较 node 版本、操作系统、依赖等环境差异;通过率 9/10 的 flaky 测试仍会被 CI 记为通过,应运行 10 次以上;测试隔离失败是 flaky 的首要原因,需检查 beforeAll/afterAll 中的共享状态。具体功能、收费与平台支持暂未提供。