用途:test-discipline 用于约束 API 变更与测试更新的一致性,避免陈旧测试阻塞其他贡献者的 CI。
主要能力:
- API 变更时同步更新测试:修改函数签名、公共接口或导出 API 时,需在提交前更新对应测试。
- 测试断言与磁盘现实一致:测试文件中的预期数量(如 EXPECTED_FEATURES、EXPECTED_SCENARIOS)必须与磁盘上的实际文件匹配。
- 新增文件同步更新断言:新增文档页、功能或任何被计数的资源时,需在同一提交中更新测试断言数组。
- CI 失败先检查断言:调试复杂失败前,先确认测试断言数组与文件系统状态一致。
正确示例:修改 auth API 签名时在同一提交更新 auth.test.ts;新增 distributed-mesh.md 时在 EXPECTED_FEATURES 数组中加入 'distributed-mesh';删除两个场景文件时从 EXPECTED_SCENARIOS 移除对应条目。
反面示例:修改 spawn 参数却未更新 casting.test.ts 就提交,导致下一位贡献者 CI 失败;新增 built-in-roles.md 却保留旧的 EXPECTED_FEATURES 数量,导致 PR 被阻塞;测试声称“预期 7 个文件”但磁盘上有 25 个,断言已过时。
反模式:提交 API 变更却不更新测试(“稍后再修测试”);把测试断言数组视为静态内容(实际随内容演进);认为 CI 通过就代表覆盖正确(陈旧断言可能通过但内容错误);把缺口留给其他智能体去发现。
限制:公开资料未提供安装方式、收费、价格、平台、使用步骤或效果数据,暂未提供相关细节。