用途:帮助选择合适的前端测试层级,让应用可观测,并消除不确定性,使失败可诊断,从而支持安全重构。
主要能力:按成本选择测试类型——单元测试覆盖纯逻辑、reducer、校验、数学与寻路;组件/集成测试用 Testing Library 配合模拟 IO;E2E 覆盖关键用户流程;视觉回归用于布局/像素问题;无障碍检查适用于 DOM UI。提供 Playwright 模式,包括用鼠标/键盘/触摸驱动输入、在 window 暴露只读测试 API、用 waitForFunction 等待就绪而非 sleep、锁定视口与设备缩放因子后截图。还包含侦察后行动流程:先等待就绪信号,再截图、收集控制台错误与失败请求,从渲染状态发现 role/text/label 选择器,然后执行操作。
使用方式:先定义一条冒烟流程(页面加载→用户可开始→一个关键动作可用)。选择运行器:浏览器 E2E 与截图优先 Playwright,DOM 组件行为优先 Testing Library,纯逻辑优先单元测试。在应用中添加就绪信号(DOM 标记、window 标志或游戏事件)并等待它。将控制台错误和失败请求视为测试失败。稳定化:固定 RNG 种子、冻结时间、固定视口/DPR、禁用动画、消除网络变化。服务器生命周期可用捆绑脚本:先运行 python scripts/with_server.py --help,再如 python scripts/with_server.py --server "npm run dev" --port 5173 -- npm test。
适用场景:DOM 应用、canvas/WebGL 游戏及混合 UI 的前端测试规划与 CI 稳定化。
限制:像素快照需先建立确定性模式;纯 canvas 的无障碍检查价值有限,除非暴露可访问的 DOM 覆盖层;networkidle 不适用于使用 websocket 或轮询的应用;捆绑资源 references/playwright-mcp-cheatsheet.md、references/phaser-canvas-testing.md、references/flake-reduction.md 按需阅读;scripts/imgdiff.py 需 pip install pillow。