SuperAPI AI 工具集

test-lane

测试与质量

查看项目

更新于 10-15 22:12

技能介绍

用途:test-lane 说明 Forge 的推送测试分流机制。推送变慢通常不是卡住,而是改动落入了全量测试通道,未映射路径就会导致这种情况。

主要能力:改动路径只有同时满足两个条件才留在快速定向通道:isKnownTargetablePath(file)(scripts/test.js)识别该路径,且通过 getTestCandidatesForChangedFile(file) / DIRECT_TEST_CANDIDATES(lib/commands/test.js)能解析到至少一个真实测试文件。只满足其一仍会跑全量:未识别路径置 hasUnmappedFiles,已识别但映射到零个现有测试置 hasZeroResolvedTests,任一标志都会把计划切为全量。

诊断方式:运行 node -e "console.log(JSON.stringify(require('./scripts/test.js').classifyPushTests(process.cwd()), null, 2))",查看 mode 与 reason。reason 会给出具体原因,如未映射推送文件需要全量单元覆盖、已知改动未解析到可运行测试、检测到包级改动,或已知改动已映射到定向测试。

新增路径:需在同一提交中做两处修改:在 scripts/test.js 的 isKnownTargetablePath 加入前缀;在 lib/commands/test.js 的 getTestCandidatesForChangedFile(或 DIRECT_TEST_CANDIDATES 的精确条目)加入前缀,并指向已存在的测试。随后重跑分类器确认 mode 为 targeted。

规则与限制:不要为让通道通过而放宽超时,慢通道是路由缺陷或真实回归,调大预算会掩盖两者;不要删除或空洞弱化断言来变绿。其他套件读取的 Markdown(README、AGENTS.md、docs/)会自动引入文档断言套件,无需手动列出。本地通过不等于 CI 通过,定向通道只证明映射测试在本机通过,需查看 gh pr checks 或 shepherd 结论。完成标准:classifyPushTests 报告 mode 为 targeted、所选测试确实运行、并能说出覆盖新路径的测试文件。资料未提供更多安装或配置细节。