00 / 00
测试与验收
01MVP Desktop 模板的代码检查、浏览器预览、Tauri 原生窗口和发布前验收清单
桌面端验收分四层,每一层验证的东西不一样:
代码契约
运行:
vpr @01mvp/desktop#type-check
vpr @01mvp/desktop#lint
vpr @01mvp/desktop#test
vpr @01mvp/desktop#build
vpr @01mvp/desktop#tauri:check当前测试覆盖:
| 测试 | 证明什么 |
|---|---|
desktop-env.test.ts | 桌面公开 env 有默认值,非法 URL 会失败 |
api-client.test.ts | oRPC 和 auth URL 拼接正确 |
preferences.test.ts | 本地偏好能规范化,空值会回落到默认值 |
改了 env、API base URL、auth cookie、runtime adapter 或偏好结构的话,先更新对应测试。
后端契约
桌面端依赖 01MVP Web/API。改了后端 origin、auth 或 oRPC 边界时,跑:
vpr @01mvp/product#test这会覆盖 config、auth、api、web 等产品级测试。纯桌面 UI 改动不需要每次跑产品级测试,跨到后端配置时再跑就行。
浏览器预览
启动:
vpr @01mvp/product#dev
vpr @01mvp/desktop#dev浏览器打开:
http://localhost:7410检查:
- 页面不是空白
- API status 能显示
- 登录表单能输入和提交
- settings 能保存和重置
- 窗口宽度接近桌面使用场景时布局合理
浏览器预览适合快速看 UI,但不能代替 native 验收。
Tauri 原生窗口
启动:
vpr @01mvp/desktop#tauri:dev检查:
- 原生窗口能打开
- 托盘菜单能显示 Open 和 Quit
- app data 目录能打开
- 本地偏好保存到 app data 后,重启仍存在
- 外部 URL 能通过系统默认浏览器打开
- 未配置 updater 时,检查更新不会导致应用崩溃
涉及 Tauri command、plugin、文件系统、托盘、系统权限和签名时,必须在这个模式验收。
构建烟测
运行:
vpr @01mvp/desktop#tauri:build构建成功后,打开生成的安装包或 .app,检查:
- 应用名、图标、版本号正确
- 首页能打开
- API URL 指向预期环境
- 登录和 profile API 可用
- app data 目录使用正式 identifier
发行包验收
准备发给真实测试用户前,再检查这一组:
| 项目 | 怎么验 |
|---|---|
| macOS 签名 | 用 codesign 检查签名身份,确认不是 ad-hoc |
| macOS 公证 | 在干净机器安装打开,不需要用户手动绕过 Gatekeeper |
| Windows 签名 | 检查安装包签名和发布者名称 |
| 自动更新 | 用旧版本安装包验证“检查更新 -> 下载 -> 安装” |
| 生产配置 | 安装包里的 API / Web URL 指向 production |
| 本地数据 | 覆盖安装后偏好、缓存、账号状态符合预期 |
| 反馈入口 | 用户遇到问题时能找到联系方式 |
如果 updater 还没启用,检查更新按钮应该显示清楚的不可用或已关闭状态,不能抛错或停在 loading。
文档链接检查
新增、删除或改名 desktop 文档时跑:
vpr @01mvp/web#docs:check-links它会检查 sidebar、Card 和 MDX 内部链接。
发布前人工清单
- 干净机器能安装和打开
- 旧版本覆盖安装后用户偏好还在
- 没有把本地
localhostAPI 打进生产包 - macOS 签名和公证状态符合预期
- Windows 安装包不会被安全软件直接拦下
- 自动更新 endpoint 返回正确版本
- updater 签名产物和 endpoint 返回的签名匹配
- 下载页、文档和安装包版本一致
- 退出、重启、托盘行为符合产品预期
- 反馈、联系作者、版本号、检查更新这些设置入口可用
常见遗漏
| 遗漏 | 后果 |
|---|---|
| 只跑浏览器预览 | Tauri command、tray、文件写入可能在真实窗口才失败 |
| 只改前端 env | 后端 CORS 或 trusted origins 仍然拒绝登录 |
| 随意改 identifier | 用户本地数据和 macOS 权限记录像换了一个应用 |
| 没跑 docs link check | sidebar 或 Card 链接会断 |
| 没验证安装包 | build 通过,但用户下载后打不开 |
这篇文档有问题?