07483b5ae2
Co-Authored-By: Claude Code <noreply@anthropic.com>
879 B
879 B
ADR-015:globalSetup 临时测试库 + vitest 2 具名导出陷阱
- 状态:已采纳(Task 13 实施发现,阶段 1)
- 决策:集成测试库由 vitest globalSetup 供给:setup 用开发库凭据连维护库 postgres,
CREATE DATABASE sf_test_<ts>→ 程序化跑全量迁移 → 写process.env.DATABASE_URL_TEST;teardownDROP DATABASE ... WITH (FORCE)。彻底消除"测试碰开发库"与"清场残留"两类问题。 - 理由:每次运行拿到完好空库且全量迁移被真实验收;开发库零写入,无需预迁移。
- 权衡/陷阱:① vitest 2 的 globalSetup 加载器在有 default 导出时只取 default 作 setup、不捕获具名 teardown——必须用具名
setup/teardown双导出且不写 default,teardown 才会注册执行。② worker 在 setup 之后派生,env 注入才对测试生效。