用途
Test Reporting & Triage Skill 用于自动对测试失败进行分诊(triage):对失败进行分类、建议责任团队,并给出可执行的修复方向,从而帮助团队更快定位与处理 CI 中的测试问题。
主要能力
- 失败分类:通过
FailureAnalyzer.categorize将错误归类为timeout、assertion、network、database、authentication、permission、configuration、flaky、infrastructure、unknown等类别。分类依据错误信息文本匹配,例如包含timeout/exceeded判为超时,包含econnrefused/network/fetch failed判为网络,包含database/prisma/unique constraint判为数据库,包含unauthorized/authentication/401判为认证,包含expected与received判为断言失败,其余归为未知。 - 建议负责人:按类别给出默认建议负责人(如超时→Performance Team,网络→DevOps Team,数据库→Backend Team,认证→Auth Team,未知→On-Call Engineer);断言失败则根据堆栈路径判断(
/frontend/→Frontend Team,/backend/→Backend Team,/api/→API Team,/database/→Database Team,否则 Development Team)。 - 建议修复清单:为每类失败提供建议操作,如超时列出检查 API 是否慢、增大超时、优化数据库查询、检查网络问题;网络列出检查服务是否运行、验证网络连通性、检查防火墙、验证 DNS;数据库列出检查连接、验证测试数据清理、检查竞态、审查迁移状态;认证列出检查令牌有效性、测试用户凭据、会话过期、认证中间件;断言列出审查近期代码变更、检查测试期望、验证测试数据、检查破坏性变更;未知列出审查错误与堆栈、检查近期提交、本地复现、增加错误处理。
- 报告生成:
TestReporter.generateReport生成 Markdown 报告,包含生成时间、失败总数、按类别汇总、按类别的详细失败(负责人、错误信息、建议修复)。 - Slack 通知:
generateSlackMessage生成带类别图标(如超时⏱️、网络🌐、数据库💾、认证🔐、断言❌、不稳定🔄、基础设施🏗️、未知❓)的 Slack 消息,包含失败总数、按类别数量以及前三个失败的名称与负责人。 - 修复检查清单:内置
fixChecklists,为超时、不稳定、数据库、断言提供勾选式步骤清单。 - CI 集成:示例 GitHub Actions 工作流在 CI 失败后下载测试结果、生成报告、发送 Slack、创建带标签(test-failure、automated)的 GitHub Issue。
- 仪表板指标:
generateMetrics计算总测试数、通过、失败、跳过、总耗时、失败率、按类别与负责人失败分布、不稳定测试识别与耗时超过 5000ms 的慢测试前十名。
使用方式
按资料提供的代码结构集成:定义 FailureCategory 与 TestFailure 类型,使用 FailureAnalyzer 对失败进行分类,通过 TestReporter 记录失败并生成 Markdown 或 Slack 消息,在 CI 中运行 npm run analyze-failures 并配合相应 Action 下载结果与通知。资料同时列出“输出清单”要求:失败分类逻辑、负责人指派规则、每类修复清单、报告生成(Markdown/Slack)、CI 集成、GitHub Issue 创建、Slack 通知、仪表板指标、趋势分析、不稳定测试检测。
适用场景
适用于持续集成中测试失败量较大、需要自动归类并把问题分派给对应团队、并希望快速获得修复提示的工程团队。
限制
资料未提供安装命令、依赖要求、具体运行环境版本、收费或授权信息,也未说明分类规则对非英文错误信息的适用性;分类依赖错误文本关键词匹配,可能产生误判。其余未在资料中明确的内容暂未提供。