- Playwright 双 webServer 模式自动启动 Go 后端 + Vite 前端 - 后端使用临时 SQLite 数据库隔离,固定端口 19026 - vite.config.ts proxy target 动态读取环境变量 - 新增 sql.js 依赖用于 SQLite 统计数据 seed - 新增 e2e/fixtures.ts 共享工具模块(API seed + SQLite seed) - 拆分测试文件 5→7(providers/models/stats/navigation/validation) - 删除旧文件 crud.spec.ts/sidebar.spec.ts/stats-cards.spec.ts - E2E 测试尚有部分用例需调试修复
30 lines
2.0 KiB
Markdown
30 lines
2.0 KiB
Markdown
## Why
|
||
|
||
前端 E2E 测试当前只启动 Vite dev server,不启动后端。所有涉及写操作(创建/编辑/删除供应商、模型)的测试无法验证数据是否真正持久化,大量测试在缺少数据时直接 skip。测试实质上只是 UI 组件存在性检查,不是真正的端到端验证。后端已有完善的 CLI 参数机制(`--server-port`、`--database-path` 等)和 SQLite 文件数据库,具备每次测试使用干净隔离环境的天然条件。
|
||
|
||
## What Changes
|
||
|
||
- Playwright 配置改为双 `webServer` 模式,自动启动 Go 后端(隔离临时数据库)+ Vite 前端
|
||
- `vite.config.ts` 的 proxy target 改为通过环境变量动态配置,E2E 时指向测试后端(19026),日常开发回退默认值(9826)
|
||
- 新增 `e2e/fixtures.ts` 共享工具模块,提供 API seed 和 SQLite seed(通过 sql.js 直接操作临时数据库插入统计数据)
|
||
- 新增 `e2e/global-setup.ts` 和 `e2e/global-teardown.ts` 管理临时目录生命周期
|
||
- 重写全部 E2E 测试文件(5→7 个),覆盖完整 CRUD 验证、统计数据验证、导航、表单校验
|
||
- 新增 `sql.js` + `@types/sql.js` 依赖(纯 WASM,零原生编译,Windows 兼容)
|
||
|
||
## Capabilities
|
||
|
||
### New Capabilities
|
||
|
||
- `e2e-testing`: 前端 E2E 测试基础设施,定义 Playwright 双 webServer 启动模式、临时文件隔离、端口策略、环境变量传递、统计数据 seed 方式、测试文件组织结构
|
||
|
||
### Modified Capabilities
|
||
|
||
(无 — 现有 `test-coverage` spec 中的 E2E 要求不变,本 change 提供实现手段使其得到真正满足)
|
||
|
||
## Impact
|
||
|
||
- **代码变更**: `frontend/vite.config.ts`(1 行)、`frontend/playwright.config.ts`(重写)、`frontend/e2e/` 目录(新增 5 文件 + 重写 3 文件 + 删除 2 文件)
|
||
- **新增依赖**: `sql.js`、`@types/sql.js`(devDependencies)
|
||
- **后端无变更**: 仅通过 CLI 参数以隔离模式启动现有后端,不修改后端代码
|
||
- **开发体验零侵入**: 日常 `bun run dev` 行为不变,仅 `bun run test:e2e` 启动真实后端
|