SuperAPI AI 工具集

flaky-test-triage

测试与质量

查看项目

更新于 10-15 19:57

技能介绍

用途:针对单个 GitHub 仓库,通过分析 GitHub Actions 已完成运行历史,检测间歇性测试失败,按作业给出失败率并分类,形成供人工审查的优先级分诊列表。

主要能力:解析可配置时间窗口内的运行结果(success、failure、cancelled),计算每个作业的失败率;识别同一 SHA 与工作流的重跑模式;将作业分类为 FLAKY(间歇性)、CONSISTENTLY-BROKEN(持续损坏)或 CLEAN。判定阈值可由配置提供:window_days 默认 30 天,failure_rate_threshold 默认 0.10,并支持 include_patterns、exclude_patterns 作业名匹配。作业由失败率与间歇性信号共同判定;失败率过高且无重跑成功则归为持续损坏。

使用方式:先读取项目配置 <project-config>/repo-health-config.md,其中 include_periods 与 exclude_patterns 等必须来自配置(即使命令行给出窗口或阈值也要读取;--window-days、--threshold 仅覆盖本次对应键)。数据采集使用 gh api 分页获取已完成运行,再逐个运行获取作业结果,并可借助 gh run view、gh run download 查看失败运行或下载测试产物。首次运行前需按技能前置检查命令执行:PYTHONPATH=.apache-magpie-local python3 -m setup_preflight --skill <name> --hash <surface_hash> [--requires <file>]...。

适用场景:维护者希望从 CI 历史中快速定位抖动测试的仓库级体检;仅面向作业级别,不解析单个测试用例。

限制:只读操作,不修改测试文件、工作流、不提 issue 或评论;默认仅分析默认分支,每次仅限一个仓库;跨仓库审计需逐仓库运行;报告仅为 CI 不稳定信号,需人工查看日志与产物确认根因;作业级分析,逐测试用例的失败率需自行用 gh run download 下载 JUnit XML 等产物解析。其他收费、平台与效果信息暂未提供。