3.2 KiB
3.2 KiB
macos-web 回归测试
可复现的 Playwright 端到端测试。生产页面不依赖 Node;仅测试代码依赖 Node 与 Playwright。
环境要求
- Node.js ≥ 18
- Playwright(本环境为全局安装:
/home/kimi/.npm-global/lib/node_modules/playwright,helpers.js 按此绝对路径 require;如安装位置不同请修改 helpers.js 第 9 行) - Chromium(
npx playwright install chromium)
运行
cd macos-web
# 全部用例(16 组)
node tests/run.js
# 按名称/标题过滤,例如:
node tests/run.js 07 # 只跑 07-notify
node tests/run.js 锁屏 # 按标题关键字过滤
测试自带静态文件服务器(端口 8177,占用时自动递增),HTTP 与 file:// 两种冷启动均覆盖;每个用例独立浏览器上下文(localStorage 隔离)。
用例清单(对应修复任务书编号)
| 文件 | 覆盖 |
|---|---|
| 01-boot | file:// / HTTP 冷启动到锁屏并解锁;控制台无未捕获异常(任务书测试 1/2/3) |
| 02-wm-close | ①WM.close 重入不连删、confirmClose 防重入、取消保留;②锁屏/睡眠保留窗口与内容、关机脏文档确认可中止(任务书测试 7/8) |
| 03-menus | ③首次打开 App 菜单可用;选择变化后重开菜单状态同步 |
| 04-finder | ④历史前进后退/index 语义;⑤双击进入/打开、Cmd/Shift 多选、重命名、复制移动、废纸篓还原;⑥桌面重绘限制(任务书测试 4) |
| 05-terminal | ⑦引号/转义 tokenizer、cp/mv 目标语义、rm -r、touch mtime、错误不重复 |
| 06-appstore | ⑧安装前三处不可见、安装后出现、旧数据迁移不删用户文件、tv.png(任务书测试 9) |
| 07-notify | ⑨总开关/App 开关/专注模式/未读语义/Dock 局部更新/Esc 与点外关闭(任务书测试 10) |
| 08-media | ⑩切源后全局音量仍生效、关闭注销、App 内滑块与全局一致(任务书测试 11) |
| 09-preview | ⑪画廊点击开大图、无无限画廊、标题/缩放/alt/加载错误(任务书测试 12) |
| 10-datetime | ⑫localDateKey、世界时钟 IANA 夏令时、时区设置保存生效 |
| 11-clock | ⑬秒表/计时器跨标签恢复、endAt 唯一基准、只通知一次、关闭前提示(任务书测试 13) |
| 12-settings | ⑭全部 pane 无异常加载、模拟状态持久化恢复、switch 完整 aria、搜索可达 |
| 13-responsive | ⑮四视口截图(tests/shots/)、窗口不越界、Dock 收窄、英文不断行(任务书测试 15) |
| 14-textedit | 文本编辑保存/另存为/取消关闭不落盘/跨 App 同步(任务书测试 5) |
| 15-persistence | 刷新后文件/图标位置/主题/便笺恢复;localStorage 损坏回退(任务书测试 14) |
| 16-assets | 本地 assets 引用缺失数 = 0(任务书测试 16) |
注意
- headless Chromium 无 H.264 解码,视频用例依赖 WebM 回退源。
evaluate调用会 await 返回的 Promise:对会弹出对话框的 API(如WM.close、Sys.powerOff、appState.save),测试中必须以语句形式调用(() => { ... }),不可直接返回其 Promise,否则 Playwright 会挂起等待用户点击。