质量与交付概览
测试不是开发完成后的独立环节,而是每个开发任务的交付出口。先用最小测试集缩短反馈时间,再按改动影响扩大到双前端、双数据库或完整 E2E。
文档结构
| 阶段 | 解决的问题 | 对应文档 |
|---|---|---|
| 本地验证 | 当前改动是否能用最短路径得到反馈 | 后端单元测试、Web 前端验证、移动端验证、Web 插件解析测试 |
| 集成与兼容 | 完整用户路径和两种数据库是否保持一致 | 端到端测试、双数据库兼容验证 |
| 合并与交付 | 本地结果是否覆盖目标仓库的 CI 门禁,远端 CI 是否全部通过 | CI 门禁与仓库矩阵、提交前检查 |
日常开发从本页的改动矩阵选择最小验证,不需要从头顺序执行所有页面。准备提交时再沿“本地验证 → 集成与兼容 → 合并与交付”扩大范围。
按改动选择验证范围
| 改动 | 最小验证 | 合并前扩大范围 |
|---|---|---|
| 后端 Service / DAO | 目标测试文件、事务成功与回滚 | 后端完整 pytest;涉及 SQL 时补双数据库 |
| Controller / 权限 | 路由、鉴权、异常响应测试 | 普通账号、越权请求与关键 E2E |
| Web 公共契约 | 当前前端生产构建 | Vue 3 与 Vue 2 都执行生产构建 |
| Web 插件解析 | test:plugin | 两套 Web 的插件测试与生产构建 |
| 移动端公共逻辑 | H5 生产构建 | 目标小程序或 App 构建、开发者工具与真机冒烟 |
| Migration / 原生 SQL | 目标数据库初始化与升级 | MySQL、PostgreSQL 各执行升级、回退预案与关键查询 |
| 插件 | 清单、依赖、后端插件测试 | 双库安装/升级、承诺支持的前端、健康检查 |
| 登录、菜单、数据范围闭环 | 相关单测 | Vue 3 使用 Playwright 关键路径与双库环境;Vue 2 单独人工验收或自建自动化 |
两个仓库当前能力
| 能力 | Vue 3 仓库 | Vue 2 仓库 |
|---|---|---|
| 后端 pytest | 有测试目录;CI 覆盖 Python 3.10–3.13 | 有相同后端源码测试目录,但当前 CI 未运行 pytest |
| Ruff | 后端与 E2E 测试工程 | 后端 |
| Playwright E2E | 有 ruoyi-fastapi-test,CI 覆盖 MySQL / PostgreSQL | 当前没有独立 E2E 测试工程 |
| Web 插件解析测试 | npm run test:plugin | npm run test:plugin |
| Web 生产构建 | npm run build:prod | npm run build:prod |
| 移动端构建 | pnpm + Vite uni-app | Yarn + Vue CLI uni-app |
自动检查与人工检查的边界
上表中的“有命令”不等于“CI 已执行”。当前 Vue 3 workflow 自动运行后端 pytest、Ruff 和双数据库 Playwright,Vue 2 workflow 只运行后端 Ruff;两套 Web 的 build:prod、移动端构建和真机验收都不是两个仓库共同具备的自动门禁。
无论两个仓库的 workflow 覆盖范围是否相同,目标仓库本次变更触发的 CI 都必须全部通过后才能合并。CI 没有覆盖的风险, 继续按改动矩阵执行人工或本地验证,不能用“CI 未配置”代替验证。
共用后端的行为不能因为 Vue 2 仓库当前 CI 较少就降低验证要求。本地可在任一仓库的后端目录运行同一组 pytest;向两个仓库同步改动时,再分别核对各自 workflow。
开发到交付
- 根据改动文件确定最小测试集,并在编码过程中反复运行。
- 补充成功、失败、权限、数据范围和事务回滚用例,避免只验证正常路径。
- 执行受影响目标的生产构建;共用契约变更同时验证 Vue 3 与 Vue 2。
- 涉及数据库、插件或完整用户路径时,按仓库现有能力扩大到双数据库或 Playwright;Vue 2 没有独立 E2E 工程时记录 人工验收结果,不能借用 Vue 3 的结果冒充已验证 Vue 2。
- 对照目标仓库 CI 执行等价命令,记录未覆盖项和人工验收结果。
- 运行提交前检查,再提交代码与迁移说明。

