用途:为 Metabase CLI 新增或变更的命令编写端到端(e2e)测试。e2e 层用已构建的 packages/cli/dist/cli.mjs 对真实 Metabase 运行,不使用 mock,用于覆盖单元测试无法验证的真实网络往返、认证流程和轮询等行为。若命令能被同目录单元测试完全覆盖,则不应添加 e2e 测试。
主要能力与约定:测试位于仓库根目录 tests/e2e/<noun>.e2e.test.ts,文件名后缀必须为 .e2e.test.ts。生成前须先阅读现有测试与框架模块(run-cli.ts、bootstrap-data.ts、cli-error.ts、defaults.ts、server-gate.ts、seed/seeded.ts、seed/ids.ts)。只能通过 runCli 调用 CLI,禁止直接使用 execa、child_process 或 fetch,禁止把 process.env 展开传入 env。e2e 层禁止 vi.mock、vi.spyOn、vi.hoisted、vi.fn 等 mock。管理员凭据只能通过 readBootstrap() 读取,实体 id 取自 SEEDED,不得硬编码。套件须用 requireServer/serverHas 按服务器能力门控或分支,避免因缺少特性而失败。每个测试使用独立 config home,并在 afterEach 清理;每个测试从恢复的快照开始,不依赖前一个测试的状态,也不手动清理。--json 输出用 parseJson 配合生产 schema 解析,断言须精确(toEqual、精确退出码、通过 cliErrorMessage 断言错误信息)。新增叶子命令时需同步更新 command-help.test.ts 中的 ALL_COMMANDS。EE 许可令牌仅作不透明 stdin 传递,不得读取、回显或断言其值。
使用方式:本地先执行 bun run build、bun run e2e:up、bun run e2e:bootstrap,再运行 bun run test:e2e 或 bun run test:e2e:watch;用 bun run e2e:down 清理卷。完成后须对文件执行自检 grep,命中禁止项需修复。
限制:资料未提供该技能的收费、价格、平台支持范围及效果数据。