2
0

005.005.story.md 4.6 KB

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