本页内容

本页内容

测试和CI

编写和添加测试

证明在所属边界的行为

通过具有固定外部 I/O 固定装置和独立预期值的生产所有者证明呼叫者可见的合同。与模拟的内部决策或整个产品启动相比,更喜欢集中的集成测试和独立的单元合同。列出可信回归以及测试无法证明的内容。

垂直切片工作:失败行为、连贯修复、通过证明。回归必须在原始缺陷上失败,而不是在夹具设置上失败;报告无法提供基线证明。在绿色测试下进行重构,并在合并覆盖范围时保留不同的合同。使用合成内容并防止凭据被捕获。

应用测试值门和证明策略。对于请求、付费电话、恢复、违约或性能索赔,请在更改代码或证明之前阅读 场景合同 。太多的私人控制表明所有权分散,不需要仅测试出口。

成本预算

使用 pnpm test <file> --maxWorkers=1 测量每个新的或更改的测试文件;报告可用时间和 CI 秒; PR 都说明了两者。

  • 长达数秒的测试必须证明合约没有更便宜的层可以做到。长的端到端组合属于仅发布层。
  • 每个文件的测试时间低于 5 秒。在 30 秒以上,解释合约以及为什么没有更便宜的层来证明它。
  • 按所有者拆分超出计划员作业预算的文件,或考虑 scripts/lib/ci-node-test-plan.mts 中的 RELEASE_ONLY_*。权衡 PR 与释放检测的风险;保持覆盖范围,无需重复发布测试。保留分配的配置和 process/timer 策略;产品 E2E/live 保持独立。请参见 维护工具路由 。
  • 注入时钟;不要添加实时计时器、睡眠或轮询。通过src/test-utils/port-claims.ts声明端口,隔离每个文件的状态,并重用套件级Gateway/process装置;当存在套件级固定装置时,切勿在每次测试时启动一个。导入狭窄的 API,而不是宽泛的桶。修复共享状态;不要添加串行配置或工作引脚。
  • 对于已编译的子进程和遗留超时帮助程序,请遵循 collection/preload 和超时迁移配方 。

测试临时目录

使用 临时目录和可执行装置配方 进行共享清理、裸目录异常和执行时关闭副本。

Agent 可靠性评估(技能)

对于技能选择、合规性和多轮工作流程评估,请使用 夹具指南。

Module 模拟和导出完整性

遵循 mock 配方 进行导出保存、状态隔离模拟、注释和收缩基线。

Raw SQLite 状态访问

在原始数据库读取或文件快照之前,请遵循 async 关闭合约 。

技能发现

关闭后台工作程序并隔离被动刷新,如 discovery cleanup 中所述。

片状分类

遵循规范的 测试失败策略 。单独运行前重现原始分片顺序;仅订单失败通常意味着早期文件共享状态泄漏。对夹具状态、缺失的完成信号和产品竞赛进行分类。修复生产者。如果删除导致红色,请在恢复之前阅读其 PR 可接受的权衡。选择重现故障模式的重复计数,而不是固定的干净运行配额。

添加回归测试(指南)

通过真正的规划者传递有限的合成库存和固定时间来解决容量错误。保留覆盖范围、所有权和执行预算主张;在现有的集成测试中保持真实的结帐库存覆盖率。

对于实时提供者错误,更喜欢在达到缺陷的最小生产组合上进行 CI-safe 回归:具有捕获请求的真实适配器、session/history/tool 管道的网关集成或独立解析器单元合约。保持固有的仅限实时检查范围并选择加入。

src/secrets/target-registry-data.ts 中的新 includeInPlan SecretRef 系列需要在 src/secrets/exec-secret-ref-id-parity.test.ts 中进行分类,因此采样遍历段拒绝不能默默地跳过它们。

本页有帮助吗?