|
|
@@ -0,0 +1,120 @@
|
|
|
+# 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
|