SuperAPI AI 工具集

ke2e-tests

测试与质量

查看项目

更新于 10-15 23:47

技能介绍

用途:ke2e 是 Kortix 唯一的端到端测试套件,位于 suna/tests/,采用黑盒方式通过 HTTP 访问真实部署的 API(staging-api.kortix.com、dev-api.kortix.com、本地 localhost:8008/v1 或生产),使用真实 Daytona、GitHub、Stripe 测试模式与 LLM,不做 mock。每个测试与 tests/spec/end-to-end.md 中稳定的流程 ID 一一对应,覆盖率门禁使该映射可强制执行,从而让规范与测试成为 API 行为的事实来源。

主要能力:流程以少量代码定义,每个 ctx.step 是一个捕获/计时/断言单元,在 HTML 报告中单独呈现;鉴权由 principal 驱动(如 ctx.client.as(ctx.P.OWNER));路径为带 /v1/... 与 :param 占位符的模板,模板即覆盖率键,必须与清单路由完全匹配;断言包括 .status、.body().has、.body().exists、.headerEquals 等,负向用例(4xx)也是普通断言;资源需通过 ctx.track 登记以便回收;异步资源使用 core/poll 的 waitFor/poll;能力受限路由可设置 requires 自行跳过。

使用方式:更新 tests/spec/end-to-end.md 中的流程行;若增删改路由,运行 bun run apps/api/scripts/dump-routes.ts 重新生成 tests/spec/routes.generated.json;在对应 tests/src/flows/<domain>.flow.ts 中调整流程并在 meta.routes 列出路由;执行 cd tests && bun bin/ke2e.ts coverage 必须通过;提交前用 KE2E_API_URL、KE2E_OWNER_EMAIL、KE2E_OWNER_PASSWORD、KE2E_LIVE_CONFIRM=1 运行 bun bin/ke2e.ts run --id PROJ-12 确认通过。常用命令还有 list、run --domain、run --id、gc --older-than 2h,报告位于 test-results/<runId>/report.html。

适用场景与限制:适用于 API 契约变更的同步测试与发布前验证。当前为 WIP,尚未强制,不阻塞 PR、晋升或部署;覆盖率完整并重新启用 e2e.yml 的 pull_request 触发与 promote.yml 的 e2e_gate 后才成为强制流程。不得为通过测试而弱化断言;无法自动化的路由需在 tests/src/coverage/allowlist.ts 中注明原因。密钥在捕获时已脱敏,不得取消脱敏。