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