docs/archives/131-testing-redesign/task_plan.md
设计并实施一个全面可靠的自动化测试方案,解决当前 pnpm test 无法发现 UI 错误的核心问题。
UI 错误检测(4 种类型全部覆盖)
VCR 模式(完全自动化)
ENABLE_REAL_LLM=true)测试范围优先级
目标: 调研技术方案,设计测试架构
任务:
输出:
findings.md - 技术调研结果(含完整技术选型对比)architecture.md - 测试架构设计文档预估时间: 2-3 天
目标: 实现 VCR 自动化录制-回放系统
任务:
pnpm test:record - 重新录制所有 fixturespnpm test:replay - 强制回放pnpm test:real - 禁用 VCRENABLE_REAL_LLM / RUN_REAL_API)输出:
packages/core/tests/fixtures/ - Fixtures 存储目录packages/core/tests/utils/vcr.ts - VCR 工具函数packages/core/tests/utils/llm-mock-service.ts - LLM Mock 服务(MSW handlers)packages/core/tests/utils/stream-simulator.ts - 流式响应模拟器packages/core/tests/setup.js - Core 测试全局 MSW 集成预估时间: 4-5 天
依赖: Phase 1 完成
目标: 建立“UI 错误自动失败”的门禁机制(Vitest + Playwright)
任务:
tests/e2e/regression.spec.ts)toHaveScreenshot)作为后续增强(可在 Phase 4/5 引入)输出:
packages/ui/tests/utils/error-detection.ts - 错误检测工具(Vitest)packages/ui/tests/setup.ts - 全局设置集成tests/e2e/fixtures.ts - Playwright 全局控制台/异常门禁playwright.config.ts - 无需变更(沿用现有 webServer 配置)预估时间: 5-6 天
依赖: Phase 1 完成
目标: 实现 P0 功能的完整测试覆盖
任务:
tests/e2e/workflows/p0-route-smoke.spec.tspackages/ui/tests/integration/basic-workspace-logic.spec.tspackages/ui/tests/integration/context-user-optimization.spec.ts、packages/ui/tests/integration/context-user-tester.spec.tspackages/ui/tests/integration/conversation-tester.spec.tspackages/ui/tests/integration/conversation-optimization.spec.tspackages/ui/tests/integration/image-generation.spec.tspackages/ui/tests/unit/stores/session/basic-session-persistence.spec.tspackages/ui/tests/unit/stores/session/pro-session-persistence.spec.tspackages/ui/tests/unit/stores/session/image-session-persistence.spec.ts输出:
tests/e2e/workflows/ - E2E 工作流测试packages/ui/tests/integration/ - 集成测试packages/ui/tests/unit/stores/ - Store 单元测试预估时间: 10-12 天
依赖: Phase 2, Phase 3 完成
目标: 实现提交前强制门禁,优化执行时间
任务:
pnpm test:gate(fast,pre-commit)pnpm test:gate:full(含 E2E)pnpm test:gate)pnpm test:replay + pnpm test:gate:fulldocs/testing/README.mddocs/testing/vcr-usage-guide.md输出:
.husky/pre-commit - pre-commit hook(已提交).github/workflows/test.yml - CI 配置(已提交)docs/testing/README.md - 测试文档(已提交)docs/testing/vcr-usage-guide.md - VCR 使用指南(已提交)预估时间: 3-4 天
依赖: Phase 4 完成
实际完成时间: 2026-01-09(门禁验证通过)
| 里程碑 | 完成标准 | 预计日期 |
|---|---|---|
| M1: 方案设计完成 | Phase 1 完成,架构文档输出 | Day 3 |
| M2: VCR 基础设施可用 | Phase 2 完成,可录制回放 LLM 响应 | Day 8 |
| M3: UI 错误检测可用 | Phase 3 完成,4 种错误类型可检测 | Day 14 |
| M4: 核心测试完成 | Phase 4 完成,P0 功能全覆盖 | Day 26 |
| M5: 门禁上线 | Phase 5 完成,pre-commit hook 生效 | Day 30 |
定量指标:
定性指标:
pnpm test 能够发现手动测试才能发现的 UI 错误 ✅ 错误门禁已启用| 错误 | 尝试次数 | 解决方案 |
|---|---|---|
| - | - | - |
| 日期 | 决策 | 原因 |
|---|---|---|
| - | - | - |