# Story 005.005: 清理和优化 ## Status Draft ## Story **As a** 开发人员, **I want** 清理web目录中已迁移的测试文件并优化测试架构, **so that** 项目保持整洁的代码结构,CI/CD流水线支持新的测试架构,文档反映最新的测试组织方式 ## Acceptance Criteria 1. 清理web目录中已迁移的测试文件 2. 更新CI/CD配置支持新的测试结构 3. 更新文档说明新的测试架构 4. 验证整体测试覆盖率 ## Tasks / Subtasks - [ ] 清理web目录中已迁移的测试文件 (AC: 1) - [ ] 删除web/tests/integration/server/目录下已迁移的集成测试文件 - [ ] 删除web/tests/unit/server/目录下已迁移的单元测试文件 - [ ] 验证web目录中不再有packages/server相关的测试文件 - [ ] 更新CI/CD配置支持新的测试结构 (AC: 2) - [ ] 检查GitHub Actions工作流配置 - [ ] 更新测试脚本以支持packages/server的独立测试 - [ ] 验证CI/CD流水线能够正确运行packages/server的测试 - [ ] 更新文档说明新的测试架构 (AC: 3) - [ ] 更新测试策略文档反映新的测试结构 - [ ] 更新项目结构文档说明测试文件组织 - [ ] 添加迁移完成说明到相关文档 - [ ] 验证整体测试覆盖率 (AC: 4) - [ ] 运行packages/server的测试覆盖率检查 - [ ] 运行web目录的测试覆盖率检查 - [ ] 验证整体测试覆盖率满足项目要求 ## Dev Notes ### 技术栈信息 [Source: architecture/tech-stack.md] - **测试框架**: Vitest 3.2.4 - **运行时**: Node.js 20.18.3 - **模块系统**: ES 模块 - **数据库**: PostgreSQL 17 + TypeORM - **API框架**: Hono 4.8.5 - **测试工具**: hono/testing (内置) ### 项目结构信息 [Source: architecture/source-tree.md] - **当前web测试位置**: web/tests/ - integration/server/ - 已迁移到packages/server的集成测试 - unit/server/ - 已迁移到packages/server的单元测试 - **目标packages/server测试位置**: packages/server/tests/ - integration/ - 集成测试 - unit/ - 单元测试 - **CI/CD配置位置**: .github/workflows/ - integration-tests.yml - component-tests.yml - e2e-tests.yml ### 测试策略信息 [Source: architecture/testing-strategy.md] - **单元测试位置**: tests/unit/**/*.test.{ts,tsx} - **集成测试位置**: tests/integration/**/*.test.{ts,tsx} - **E2E测试位置**: tests/e2e/**/*.test.{ts,tsx} - **测试框架**: Vitest + Testing Library + hono/testing + Playwright - **覆盖率目标**: 单元测试 ≥ 80%,集成测试 ≥ 60% - **测试执行频率**: 每次代码变更 ### 先前故事洞察 [Source: docs/stories/005.003.story.md, docs/stories/005.004.story.md] - 工具类单元测试已成功迁移到packages/server/tests/unit/utils/ - 集成测试已成功迁移到packages/server/tests/integration/ - 所有迁移的测试在packages/server环境中正常运行 - 测试覆盖率保持稳定,packages/server当前覆盖率为72.89% - 需要清理web目录中重复的测试文件以保持代码整洁 ### 需要清理的web测试文件 - **web/tests/integration/server/** - auth.integration.test.ts (已迁移) - backup.integration.test.ts (已迁移) - files/files.integration.test.ts (已迁移) - files/minio.integration.test.ts (已迁移) - users.integration.test.ts (已迁移) - **web/tests/unit/server/** - modules/files/file.service.test.ts (已迁移) - modules/files/minio.service.test.ts (已迁移) - modules/user.service.test.ts (已迁移) - utils/backup.test.ts (已迁移) - utils/restore.test.ts (已迁移) ### CI/CD配置更新需求 - **GitHub Actions工作流**: 需要更新以支持packages/server的独立测试执行 - **测试脚本**: web/package.json中的测试脚本可能需要调整 - **覆盖率报告**: 需要确保packages/server的覆盖率被正确收集和报告 ### Testing - **测试文件位置**: - packages/server/tests/unit/ 和 packages/server/tests/integration/ - web/tests/unit/ 和 web/tests/integration/ (仅保留web特定测试) - **测试框架**: Vitest + Testing Library + hono/testing - **覆盖率要求**: - packages/server: 单元测试 ≥ 80%,集成测试 ≥ 60% - web: 组件测试 ≥ 70%,集成测试 ≥ 50% - **测试标准**: - 删除重复的测试文件 - 确保所有测试在正确的位置运行 - 验证CI/CD流水线支持新的测试结构 - 保持测试覆盖率稳定 ## Change Log | Date | Version | Description | Author | |------|---------|-------------|--------| | 2025-11-09 | 1.0 | 初始故事创建 | Bob (Scrum Master) | ## Dev Agent Record ### Agent Model Used ### Debug Log References ### Completion Notes List ### File List ## QA Results