e2ad1331cc
feat(测试): 新增Playwright和Vitest测试配置 feat(测试): 添加测试覆盖率报告生成功能 feat(测试): 实现前后端测试脚本集成 fix(测试): 修复测试密码不匹配问题 fix(测试): 修正URL等待策略 fix(测试): 调整错误消息选择器 refactor(测试): 重构测试目录结构 refactor(测试): 优化测试用例组织方式 docs: 更新测试报告文档 docs: 添加测试覆盖率报告模板 ci: 添加Docker测试环境配置 ci: 实现测试自动化脚本 chore: 更新依赖版本 chore: 添加测试相关配置文件
9.1 KiB
9.1 KiB
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