Skip to content

引入前端 E2E 测试(Playwright)覆盖核心闭环流程 #259

Description

@liujuanjuan1984

背景与意图

前端现有 86 个测试文件、302 个用例,但均为单元/组件级(vitest + Testing Library),无法验证跨组件、跨路由与真实 API 交互的集成行为。核心闭环"规划任务 → 时间记录 → 复盘/洞察"依赖多个页面与 cache 状态,适合用 E2E 测试兜底。

目标是引入最小 Playwright 基线,覆盖本地 Web UI 的核心用户闭环,并接入 web_validate.sh

实施范围

  • 引入 Playwright 与浏览器 runner,固定浏览器版本或使用 CI 缓存避免漂移。
  • 选择一条稳定核心流程做端到端覆盖,例如:创建 vision → 添加 task → 记录 timelog → 查看 insights 统计。
  • 本地开发可用 mock API 或 lifeos web serve 实际服务两种模式;CI 建议使用真实 FastAPI + 临时 SQLite,避免 mock 与后端漂移。
  • 增加确定性 selector 约定(优先 role/label/text,避免依赖生成的 class)。
  • 纳入 bash ./scripts/web_validate.sh,失败时产出可读 report/artifact。

非目标

  • 不追求全页面 E2E 覆盖;以核心闭环与高回归风险路径为限。
  • 不替代现有单元/组件测试。
  • 不改变前端生产代码或页面结构以满足测试。

验收标准

  • 至少一条端到端流程在 CI 稳定通过(含并行/重试策略)。
  • 本地可一键运行 E2E 并给出失败定位。
  • bash ./scripts/web_validate.sh 通过;bash ./scripts/doctor.sh 通过。

交付说明

PR 描述需说明测试模式(mock vs real API)、浏览器矩阵、稳定性策略,并使用 Closes #<本 issue>

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions