SuperAPI AI 工具集

test-pruner

测试与质量

查看项目

更新于 10-15 22:12

技能介绍

Test Pruner 用于在指定区域梳理并精简测试,核心目标是提升信心而非单纯减少测试数量。使用前应先阅读项目自身说明(如 AGENTS.md、CONTRIBUTING)。

它区分两类模式:编写把关会拒绝符合“垃圾模式”的新测试,审计则查找已存在的同类测试。典型垃圾模式包括:无断言的覆盖率探测、自我比较与身份复制、复制式夹具或清单、对源码或字符串的精确 grep、在真实边界重复的私有谓词测试、同一契约的重复调用、仅为保留测试专用导出或包装器而存在的测试、仅被测试调用的死代码、由被测助手自身产出的期望值、实现被断言行为的 mock、由所有者应产出的顺序却被夹具提供、只复述声明的能力测试、因无关原因通过的负向控制,以及命名或夹具承诺超过实际输入的测试。

价值标准:测试须通过保护行为、可信回归或独立有意义的契约来证明其维护成本。审计中,因保持行为不变的重组而必须改动的测试可疑,但不自动删除。判断候选前应阅读完整测试与生产所有者、入口点、调用方、被调用方、同类实现、重叠测试、CI 路由和相关历史;若测试声称依赖支持的行为,应直接检查依赖源码或类型。

保留标准:当测试独立执行公共 API、插件 SDK、协议、配置、迁移、存储、安全、平台、默认值、提示字节、生成式跨语言、包、发布或架构契约时应保留;可观察的调用顺序、有可信失败模式的回归、作为最廉价独立守卫的源码检查也应保留。若保留的测试在基线失败,应视为可能的产品缺陷,复现并修复所有者,而非删除。静态或缓慢不是删除理由。

编辑前需记录候选证据:测试名称与位置、可检测的失败、被覆盖接缝的非测试调用方、更强的边界证明、相关历史、可解锁的生产或测试支持删除、风险与聚焦验证命令。编辑应选择一个连贯的所有者边界批次,删除过时的测试专用导出、全局、包装器和死代码路径,将保留的回归移到规范所有者,合并重复的包或依赖断言。优先净减少生产代码行数,不添加复述同一实现的替代测试。移交时报告删除的低价值类别、生产简化、保留的误报及原因、实际运行的验证。该技能改编自 openclaw 的 test-audit(MIT,OpenClaw Foundation)。