00 / 00
测试
01MVP 的单元测试、D1 集成验证、浏览器 E2E 和发布前检查。

测试重点是数据库一致性、权限、登录、支付、上传和公开页面。日常先运行受影响 package 的窄检查,跨模块改动和发布前再运行产品级检查。
产品级检查
vpr @01mvp/product#lint
vpr @01mvp/product#type-check
vpr @01mvp/product#test
vpr @01mvp/product#buildtest 覆盖 Web、API、Auth、DB、Credits、Payment、Config、i18n 和其他产品包。数据库相关单元测试使用 mock 或 SQLite 兼容接口,不连接生产 D1。
浏览器 E2E
# 公开页和未登录流程
vpr @01mvp/product#test:e2e:public
# 登录后的关键流程
vpr @01mvp/product#test:e2e:auth
# 完整本地浏览器测试
vpr @01mvp/product#test:e2e
# 生产构建 smoke
vpr @01mvp/product#test:e2e:production本地 E2E 启动脚本会:
- 清理隔离的
.wrangler/e2e数据目录。 - 构建 Cloudflare Worker 产物。
- 把已提交 migration 应用到隔离的本地 D1。
- 启动 Wrangler 开发服务器。
- 由
auth-setup通过注册页创建第一个管理员,并保存本次测试的认证状态。
它不使用 DATABASE_URL、远程 D1 或生产账号,也不需要数据库 seed。认证状态写到已忽略的 test-results/.auth/,不要提交。
运行线上 smoke
设置 PLAYWRIGHT_BASE_URL 后,生产 smoke 会直接访问指定站点,不会启动本地服务:
PLAYWRIGHT_BASE_URL=https://example.com \
vpr @01mvp/product#test:e2e:production线上 smoke 只能执行无破坏、可重复的检查,例如公开页、健康接口、登录入口、静态资源和安全 header。不要让它创建订单、扣积分、修改后台配置或清空数据。
数据库变更怎么测
修改 schema 后:
vpr @01mvp/product#db:generate
vpr @01mvp/product#db:migrate
vpr @01mvp/db#test
vpr @01mvp/product#test:e2e重点验证:
- migration 能从空本地 D1 完整应用。
- 时间、布尔值、JSON 和十进制文本读写正确。
- 多语句原子操作使用 D1 batch、条件更新或经过审查的 trigger。
- 唯一约束、外键和最后一个超级管理员保护仍然生效。
- D1 proxy 对未授权请求拒绝,对 batch 返回与 binding 一致的结果。
远端 migration 在本地验证和代码审查通过后再执行:
vpr @01mvp/product#db:deploy新产品裁剪后的测试
使用初始化 Skill 删除能力后,不要只检查首页能打开。AI 还应扫描被删除能力的路由、包依赖、schema、migration、环境变量、文档和导航残留,再运行目标产品自己的 lint、类型检查、测试和构建。
这篇文档有问题?