e2ad1331cc
feat(测试): 新增Playwright和Vitest测试配置 feat(测试): 添加测试覆盖率报告生成功能 feat(测试): 实现前后端测试脚本集成 fix(测试): 修复测试密码不匹配问题 fix(测试): 修正URL等待策略 fix(测试): 调整错误消息选择器 refactor(测试): 重构测试目录结构 refactor(测试): 优化测试用例组织方式 docs: 更新测试报告文档 docs: 添加测试覆盖率报告模板 ci: 添加Docker测试环境配置 ci: 实现测试自动化脚本 chore: 更新依赖版本 chore: 添加测试相关配置文件
372 lines
9.1 KiB
Markdown
372 lines
9.1 KiB
Markdown
# Novalon管理系统质量提升迭代计划
|
||
|
||
## 📋 项目状态评估总结
|
||
|
||
### ✅ 已完成项
|
||
|
||
- 功能完整性:⭐⭐⭐⭐⭐ (5/5) - 所有核心功能已实现
|
||
- 前后端对接:⭐⭐⭐⭐⭐ (5/5) - 完全使用真实数据对接
|
||
- E2E测试:⭐⭐⭐⭐⭐ (5/5) - 30+个测试文件,覆盖全面
|
||
- API集成测试:⭐⭐⭐⭐⭐ (5/5) - 18个测试文件,覆盖全面
|
||
|
||
### ⚠️ 需改进项
|
||
|
||
- 单元测试:⭐☆☆☆☆ (1/5) - 完全缺失
|
||
- 测试覆盖率:⭐☆☆☆☆ (1/5) - 无覆盖率监控
|
||
- CI/CD集成:⭐⭐☆☆☆ (2/5) - 缺少自动化流水线
|
||
- 测试效率:⭐⭐⭐☆☆ (3/5) - E2E测试执行时间较长
|
||
|
||
## 🎯 迭代目标
|
||
|
||
### 阶段一:补充单元测试(优先级:高)
|
||
|
||
- 前端组件单元测试
|
||
- 后端Service层单元测试
|
||
- 工具函数单元测试
|
||
|
||
### 阶段二:提升测试覆盖率(优先级:高)
|
||
|
||
- 集成代码覆盖率工具
|
||
- 设置覆盖率目标(80%)
|
||
- 添加覆盖率门禁
|
||
|
||
### 阶段三:优化测试执行效率(优先级:中)
|
||
|
||
- 并行执行测试
|
||
- 测试数据隔离
|
||
- 减少E2E测试执行时间
|
||
|
||
### 阶段四:完善CI/CD流水线(优先级:高)
|
||
|
||
- 自动化测试执行
|
||
- 自动化测试报告
|
||
- 质量门禁
|
||
|
||
### 阶段五:增强测试稳定性(优先级:中)
|
||
|
||
- 减少flaky测试
|
||
- 增加重试机制
|
||
- 优化等待策略
|
||
|
||
## 📝 详细任务清单
|
||
|
||
### 阶段一:补充单元测试
|
||
|
||
#### 任务1.1:配置前端单元测试环境
|
||
|
||
- [ ] 检查现有Vitest配置
|
||
- [ ] 安装必要的测试依赖(@vue/test-utils, jsdom)
|
||
- [ ] 配置测试覆盖率工具(@vitest/coverage-v8)
|
||
- [ ] 创建测试工具函数和fixtures
|
||
- [ ] 编写单元测试示例文档
|
||
|
||
#### 任务1.2:编写前端组件单元测试
|
||
|
||
- [ ] Login组件单元测试
|
||
- [ ] UserManagement组件单元测试
|
||
- [ ] RoleManagement组件单元测试
|
||
- [ ] MenuManagement组件单元测试
|
||
- [ ] SystemConfig组件单元测试
|
||
- [ ] DictionaryManagement组件单元测试
|
||
- [ ] FileManagement组件单元测试
|
||
- [ ] Notification组件单元测试
|
||
- [ ] Audit组件单元测试(OperationLog, LoginLog, ExceptionLog)
|
||
|
||
#### 任务1.3:编写前端工具函数单元测试
|
||
|
||
- [ ] request.ts单元测试
|
||
- [ ] errorHandler.ts单元测试
|
||
- [ ] API客户端单元测试
|
||
- [ ] 状态管理工具单元测试
|
||
|
||
#### 任务1.4:配置后端单元测试环境
|
||
|
||
- [ ] 检查现有JUnit配置
|
||
- [ ] 配置Mockito依赖
|
||
- [ ] 配置测试覆盖率工具(JaCoCo)
|
||
- [ ] 创建测试基类和工具类
|
||
- [ ] 编写单元测试示例文档
|
||
|
||
#### 任务1.5:编写后端Service层单元测试
|
||
|
||
- [ ] SysUserService单元测试
|
||
- [ ] SysRoleService单元测试
|
||
- [ ] SysMenuService单元测试
|
||
- [ ] SysDictService单元测试
|
||
- [ ] SysConfigService单元测试
|
||
- [ ] SysNoticeService单元测试
|
||
- [ ] SysFileService单元测试
|
||
- [ ] SysAuditService单元测试
|
||
|
||
#### 任务1.6:编写后端Handler层单元测试
|
||
|
||
- [ ] SysAuthHandler单元测试
|
||
- [ ] SysUserHandler单元测试
|
||
- [ ] SysRoleHandler单元测试
|
||
- [ ] MenuHandler单元测试
|
||
- [ ] SysDictHandler单元测试
|
||
- [ ] SysConfigHandler单元测试
|
||
- [ ] SysNoticeHandler单元测试
|
||
- [ ] SysFileHandler单元测试
|
||
- [ ] OperationLogHandler单元测试
|
||
|
||
### 阶段二:提升测试覆盖率
|
||
|
||
#### 任务2.1:配置前端测试覆盖率
|
||
|
||
- [ ] 配置@vitest/coverage-v8
|
||
- [ ] 设置覆盖率报告格式(HTML, JSON, LCOV)
|
||
- [ ] 配置覆盖率排除规则
|
||
- [ ] 集成到package.json脚本
|
||
|
||
#### 任务2.2:配置后端测试覆盖率
|
||
|
||
- [ ] 配置JaCoCo Maven插件
|
||
- [ ] 设置覆盖率报告格式(HTML, XML)
|
||
- [ ] 配置覆盖率排除规则
|
||
- [ ] 集成到Maven构建生命周期
|
||
|
||
#### 任务2.3:设置覆盖率目标
|
||
|
||
- [ ] 前端覆盖率目标:80%
|
||
- [ ] 后端覆盖率目标:80%
|
||
- [ ] 分模块覆盖率目标
|
||
- [ ] 覆盖率阈值配置
|
||
|
||
#### 任务2.4:生成覆盖率报告
|
||
|
||
- [ ] 运行前端测试生成覆盖率报告
|
||
- [ ] 运行后端测试生成覆盖率报告
|
||
- [ ] 合并覆盖率报告
|
||
- [ ] 分析覆盖率数据
|
||
|
||
#### 任务2.5:添加覆盖率门禁
|
||
|
||
- [ ] 前端覆盖率门禁配置
|
||
- [ ] 后端覆盖率门禁配置
|
||
- [ ] 失败阈值设置
|
||
- [ ] 门禁触发机制
|
||
|
||
### 阶段三:优化测试执行效率
|
||
|
||
#### 任务3.1:优化E2E测试执行
|
||
|
||
- [ ] 分析当前E2E测试执行时间
|
||
- [ ] 识别慢速测试用例
|
||
- [ ] 优化等待策略
|
||
- [ ] 减少不必要的等待
|
||
|
||
#### 任务3.2:实现测试并行执行
|
||
|
||
- [ ] 配置Playwright并行执行
|
||
- [ ] 配置Pytest并行执行(pytest-xdist)
|
||
- [ ] 优化测试数据隔离
|
||
- [ ] 调整并行度配置
|
||
|
||
#### 任务3.3:优化测试数据管理
|
||
|
||
- [ ] 实现测试数据清理机制
|
||
- [ ] 实现测试数据回滚机制
|
||
- [ ] 优化测试数据生成策略
|
||
- [ ] 减少测试数据依赖
|
||
|
||
#### 任务3.4:优化API测试执行
|
||
|
||
- [ ] 批量执行API测试
|
||
- [ ] 减少API测试等待时间
|
||
- [ ] 优化HTTP客户端配置
|
||
- [ ] 实现测试结果缓存
|
||
|
||
### 阶段四:完善CI/CD流水线
|
||
|
||
#### 任务4.1:配置GitHub Actions
|
||
|
||
- [ ] 创建GitHub Actions工作流文件
|
||
- [ ] 配置环境变量和密钥
|
||
- [ ] 配置Docker环境
|
||
- [ ] 配置数据库服务
|
||
|
||
#### 任务4.2:集成前端测试到CI/CD
|
||
|
||
- [ ] 配置前端单元测试执行
|
||
- [ ] 配置前端E2E测试执行
|
||
- [ ] 配置前端覆盖率报告
|
||
- [ ] 配置前端质量门禁
|
||
|
||
#### 任务4.3:集成后端测试到CI/CD
|
||
|
||
- [ ] 配置后端单元测试执行
|
||
- [ ] 配置后端集成测试执行
|
||
- [ ] 配置后端覆盖率报告
|
||
- [ ] 配置后端质量门禁
|
||
|
||
#### 任务4.4:集成API测试到CI/CD
|
||
|
||
- [ ] 配置API测试执行
|
||
- [ ] 配置API测试报告
|
||
- [ ] 配置API测试质量门禁
|
||
|
||
#### 任务4.5:配置自动化测试报告
|
||
|
||
- [ ] 配置Allure测试报告
|
||
- [ ] 配置测试报告通知
|
||
- [ ] 配置测试趋势分析
|
||
- [ ] 配置测试覆盖率趋势
|
||
|
||
#### 任务4.6:配置质量门禁
|
||
|
||
- [ ] 单元测试通过率门禁
|
||
- [ ] 集成测试通过率门禁
|
||
- [ ] E2E测试通过率门禁
|
||
- [ ] 覆盖率门禁
|
||
- [ ] 代码质量门禁(ESLint, SpotBugs)
|
||
|
||
### 阶段五:增强测试稳定性
|
||
|
||
#### 任务5.1:识别和修复Flaky测试
|
||
|
||
- [ ] 运行测试多次识别flaky测试
|
||
- [ ] 分析flaky测试原因
|
||
- [ ] 修复flaky测试
|
||
- [ ] 添加重试机制
|
||
|
||
#### 任务5.2:优化等待策略
|
||
|
||
- [ ] 统一等待策略
|
||
- [ ] 使用显式等待替代隐式等待
|
||
- [ ] 优化网络请求等待
|
||
- [ ] 优化DOM元素等待
|
||
|
||
#### 任务5.3:增强测试数据隔离
|
||
|
||
- [ ] 每个测试用例独立数据
|
||
- [ ] 测试前数据准备
|
||
- [ ] 测试后数据清理
|
||
- [ ] 实现数据快照机制
|
||
|
||
#### 任务5.4:优化错误处理
|
||
|
||
- [ ] 统一错误处理策略
|
||
- [ ] 改进错误消息
|
||
- [ ] 添加调试信息
|
||
- [ ] 优化日志记录
|
||
|
||
## 🚀 执行顺序
|
||
|
||
### 批次1:单元测试基础设施(任务1.1, 1.4)
|
||
|
||
- 配置前端和后端单元测试环境
|
||
- 创建测试工具和示例文档
|
||
|
||
### 批次2:核心组件单元测试(任务1.2, 1.3)
|
||
|
||
- 编写前端核心组件单元测试
|
||
- 编写前端工具函数单元测试
|
||
|
||
### 批次3:后端Service层单元测试(任务1.5)
|
||
|
||
- 编写所有Service层单元测试
|
||
|
||
### 批次4:后端Handler层单元测试(任务1.6)
|
||
|
||
- 编写所有Handler层单元测试
|
||
|
||
### 批次5:测试覆盖率配置(任务2.1, 2.2)
|
||
|
||
- 配置前端和后端测试覆盖率工具
|
||
|
||
### 批次6:覆盖率目标和报告(任务2.3, 2.4)
|
||
|
||
- 设置覆盖率目标
|
||
- 生成覆盖率报告
|
||
|
||
### 批次7:覆盖率门禁(任务2.5)
|
||
|
||
- 添加覆盖率门禁
|
||
|
||
### 批次8:测试执行效率优化(任务3.1, 3.2)
|
||
|
||
- 优化E2E测试执行
|
||
- 实现测试并行执行
|
||
|
||
### 批次9:测试数据管理优化(任务3.3, 3.4)
|
||
|
||
- 优化测试数据管理
|
||
- 优化API测试执行
|
||
|
||
### 批次10:CI/CD基础设施(任务4.1)
|
||
|
||
- 配置GitHub Actions
|
||
|
||
### 批次11:测试集成到CI/CD(任务4.2, 4.3)
|
||
|
||
- 集成前端和后端测试到CI/CD
|
||
|
||
### 批次12:API测试和报告(任务4.4, 4.5)
|
||
|
||
- 集成API测试到CI/CD
|
||
- 配置自动化测试报告
|
||
|
||
### 批次13:质量门禁(任务4.6)
|
||
|
||
- 配置质量门禁
|
||
|
||
### 批次14:测试稳定性(任务5.1, 5.2)
|
||
|
||
- 识别和修复Flaky测试
|
||
- 优化等待策略
|
||
|
||
### 批次15:数据隔离和错误处理(任务5.3, 5.4)
|
||
|
||
- 增强测试数据隔离
|
||
- 优化错误处理
|
||
|
||
## 📊 成功标准
|
||
|
||
### 阶段一成功标准
|
||
|
||
- ✅ 前端单元测试覆盖率 > 60%
|
||
- ✅ 后端单元测试覆盖率 > 60%
|
||
- ✅ 所有核心组件都有单元测试
|
||
- ✅ 所有Service层都有单元测试
|
||
|
||
### 阶段二成功标准
|
||
|
||
- ✅ 前端测试覆盖率 > 80%
|
||
- ✅ 后端测试覆盖率 > 80%
|
||
- ✅ 覆盖率报告可查看
|
||
- ✅ 覆盖率门禁生效
|
||
|
||
### 阶段三成功标准
|
||
|
||
- ✅ E2E测试执行时间减少30%
|
||
- ✅ 测试可并行执行
|
||
- ✅ 测试数据完全隔离
|
||
|
||
### 阶段四成功标准
|
||
|
||
- ✅ CI/CD流水线正常运行
|
||
- ✅ 所有测试自动执行
|
||
- ✅ 测试报告自动生成
|
||
- ✅ 质量门禁生效
|
||
|
||
### 阶段五成功标准
|
||
|
||
- ✅ Flaky测试 < 5%
|
||
- ✅ 测试稳定性 > 95%
|
||
- ✅ 错误处理完善
|
||
|
||
## 📝 备注
|
||
|
||
- 每个批次执行完成后需要汇报进度
|
||
- 遇到阻塞问题立即停止并寻求帮助
|
||
- 保持代码质量和测试质量
|
||
- 遵循项目编码规范
|
||
- 及时更新文档
|
||
|
||
---
|
||
|
||
**创建时间:** 2026-03-24
|
||
**创建者:** 张翔(全栈质量保障与研发效能工程师)
|
||
**计划版本:** v1.0
|