|
@@ -0,0 +1,137 @@
|
|
|
|
|
+# Story 006.001: 迁移 mini-test-demo 中现成的测试环境
|
|
|
|
|
+
|
|
|
|
|
+## Status
|
|
|
|
|
+Draft
|
|
|
|
|
+
|
|
|
|
|
+## Story
|
|
|
|
|
+**As a** 开发人员,
|
|
|
|
|
+**I want** 迁移 mini-test-demo 中现成的测试环境到 mini 项目,
|
|
|
|
|
+**so that** 小程序项目拥有完整的测试环境配置,能够运行基础示例测试,确保代码质量和稳定性
|
|
|
|
|
+
|
|
|
|
|
+## Acceptance Criteria
|
|
|
|
|
+1. 在 mini/package.json 中添加测试脚本
|
|
|
|
|
+2. 复制 mini-test-demo 中的 jest.config.js 配置文件
|
|
|
|
|
+3. 复制 mini-test-demo 中的 tests 目录结构和 setup.ts
|
|
|
|
|
+4. 复制 Taro 组件 mock 和测试依赖配置
|
|
|
|
|
+5. 复制基础示例测试文件
|
|
|
|
|
+6. 验证测试环境正常运行
|
|
|
|
|
+7. 不创建新的组件/页面测试(当前为 starter 项目)
|
|
|
|
|
+
|
|
|
|
|
+## Tasks / Subtasks
|
|
|
|
|
+- [ ] 在 mini/package.json 中添加测试脚本 (AC: 1)
|
|
|
|
|
+ - [ ] 从 mini-test-demo/mini/package.json 复制测试相关脚本
|
|
|
|
|
+ - [ ] 添加 "test": "jest" 脚本
|
|
|
|
|
+ - [ ] 添加 "test:watch": "jest --watch" 脚本
|
|
|
|
|
+ - [ ] 添加 "test:coverage": "jest --coverage" 脚本
|
|
|
|
|
+- [ ] 复制 mini-test-demo 中的 jest.config.js 配置文件 (AC: 2)
|
|
|
|
|
+ - [ ] 复制 mini-test-demo/mini/jest.config.js 到 mini/jest.config.js
|
|
|
|
|
+ - [ ] 验证配置文件路径映射正确
|
|
|
|
|
+ - [ ] 确保模块名称映射与 mini 项目结构匹配
|
|
|
|
|
+- [ ] 复制 mini-test-demo 中的 tests 目录结构和 setup.ts (AC: 3)
|
|
|
|
|
+ - [ ] 创建 mini/tests/ 目录
|
|
|
|
|
+ - [ ] 复制 mini-test-demo/mini/tests/setup.ts
|
|
|
|
|
+ - [ ] 复制 tests/__mocks__/ 目录结构
|
|
|
|
|
+ - [ ] 验证 setup.ts 中的配置正确
|
|
|
|
|
+- [ ] 复制 Taro 组件 mock 和测试依赖配置 (AC: 4)
|
|
|
|
|
+ - [ ] 复制 tests/__mocks__/taroMock.ts
|
|
|
|
|
+ - [ ] 复制 tests/__mocks__/styleMock.js
|
|
|
|
|
+ - [ ] 复制 tests/__mocks__/fileMock.js
|
|
|
|
|
+ - [ ] 从 mini-test-demo/mini/package.json 复制测试相关依赖
|
|
|
|
|
+- [ ] 复制基础示例测试文件 (AC: 5)
|
|
|
|
|
+ - [ ] 复制 tests/example.test.tsx
|
|
|
|
|
+ - [ ] 复制 tests/components/Button.test.tsx
|
|
|
|
|
+ - [ ] 复制 tests/components/AreaPicker.test.tsx
|
|
|
|
|
+ - [ ] 确保测试文件路径映射正确
|
|
|
|
|
+- [ ] 验证测试环境正常运行 (AC: 6)
|
|
|
|
|
+ - [ ] 运行 "pnpm test" 验证测试执行
|
|
|
|
|
+ - [ ] 运行 "pnpm test:coverage" 验证覆盖率报告
|
|
|
|
|
+ - [ ] 确保所有基础示例测试通过
|
|
|
|
|
+ - [ ] 验证 Taro 组件 mock 正常工作
|
|
|
|
|
+- [ ] 不创建新的组件/页面测试 (AC: 7)
|
|
|
|
|
+ - [ ] 仅迁移 mini-test-demo 中现有的测试文件
|
|
|
|
|
+ - [ ] 不创建针对 mini 项目特定组件的测试
|
|
|
|
|
+ - [ ] 保持 starter 项目的轻量级特性
|
|
|
|
|
+
|
|
|
|
|
+## Dev Notes
|
|
|
|
|
+
|
|
|
|
|
+### 技术栈信息 [Source: architecture/tech-stack.md]
|
|
|
|
|
+- **测试框架**: Jest + Testing Library
|
|
|
|
|
+- **运行时**: Node.js 20.19.2
|
|
|
|
|
+- **小程序框架**: Taro 4.1.4 + React 18
|
|
|
|
|
+- **类型系统**: TypeScript 5.4.5
|
|
|
|
|
+- **构建工具**: Webpack 5.91.0
|
|
|
|
|
+
|
|
|
|
|
+### 项目结构信息 [Source: architecture/source-tree.md]
|
|
|
|
|
+- **mini项目位置**: /mnt/code/155-138-template-6/mini/
|
|
|
|
|
+- **参考模板位置**: /mnt/code/155-138-template-6/mini-test-demo/mini/
|
|
|
|
|
+- **测试目录结构**:
|
|
|
|
|
+ - tests/ - 测试根目录
|
|
|
|
|
+ - tests/__mocks__/ - Mock 文件目录
|
|
|
|
|
+ - tests/components/ - 组件测试
|
|
|
|
|
+ - tests/pages/ - 页面测试
|
|
|
|
|
+ - tests/unit/ - 单元测试
|
|
|
|
|
+- **配置文件**:
|
|
|
|
|
+ - jest.config.js - Jest 配置
|
|
|
|
|
+ - tests/setup.ts - 测试环境设置
|
|
|
|
|
+
|
|
|
|
|
+### 测试策略信息 [Source: mini-test-demo/mini/jest.config.js]
|
|
|
|
|
+- **测试匹配模式**: tests/**/*.spec.{ts,tsx}, tests/**/*.test.{ts,tsx}
|
|
|
|
|
+- **测试环境**: jsdom
|
|
|
|
|
+- **模块映射**:
|
|
|
|
|
+ - @/ -> src/
|
|
|
|
|
+ - ~/ -> tests/
|
|
|
|
|
+ - @tarojs/taro -> tests/__mocks__/taroMock.ts
|
|
|
|
|
+- **覆盖率收集**: src/**/*.{ts,tsx}
|
|
|
|
|
+- **忽略路径**: /node_modules/, /dist/, /coverage/
|
|
|
|
|
+
|
|
|
|
|
+### Mock 配置信息 [Source: mini-test-demo/mini/tests/__mocks__/]
|
|
|
|
|
+- **taroMock.ts**: Taro 框架组件的完整 mock
|
|
|
|
|
+- **styleMock.js**: CSS/LESS/SCSS 样式文件的 mock
|
|
|
|
|
+- **fileMock.js**: 图片和静态资源文件的 mock
|
|
|
|
|
+
|
|
|
|
|
+### 需要复制的测试依赖 [Source: mini-test-demo/mini/package.json]
|
|
|
|
|
+- **测试框架**: jest, ts-jest, @types/jest
|
|
|
|
|
+- **测试工具**: @testing-library/react, @testing-library/jest-dom
|
|
|
|
|
+- **测试环境**: jest-environment-jsdom
|
|
|
|
|
+- **类型定义**: @types/testing-library__jest-dom
|
|
|
|
|
+
|
|
|
|
|
+### 测试文件迁移清单
|
|
|
|
|
+- **配置文件**:
|
|
|
|
|
+ - jest.config.js
|
|
|
|
|
+ - tests/setup.ts
|
|
|
|
|
+- **Mock 文件**:
|
|
|
|
|
+ - tests/__mocks__/taroMock.ts
|
|
|
|
|
+ - tests/__mocks__/styleMock.js
|
|
|
|
|
+ - tests/__mocks__/fileMock.js
|
|
|
|
|
+- **基础测试文件**:
|
|
|
|
|
+ - tests/example.test.tsx
|
|
|
|
|
+ - tests/components/Button.test.tsx
|
|
|
|
|
+ - tests/components/AreaPicker.test.tsx
|
|
|
|
|
+
|
|
|
|
|
+### Testing
|
|
|
|
|
+- **测试文件位置**: mini/tests/
|
|
|
|
|
+- **测试框架**: Jest + Testing Library
|
|
|
|
|
+- **覆盖率要求**: 基础示例测试通过率 100%
|
|
|
|
|
+- **测试标准**:
|
|
|
|
|
+ - 测试环境配置完整
|
|
|
|
|
+ - 所有基础示例测试通过
|
|
|
|
|
+ - Taro 组件 mock 正常工作
|
|
|
|
|
+ - 测试脚本可正常运行
|
|
|
|
|
+ - 不创建新的测试用例
|
|
|
|
|
+
|
|
|
|
|
+## Change Log
|
|
|
|
|
+| Date | Version | Description | Author |
|
|
|
|
|
+|------|---------|-------------|--------|
|
|
|
|
|
+| 2025-11-10 | 1.0 | 初始故事创建 | Bob (Scrum Master) |
|
|
|
|
|
+
|
|
|
|
|
+## Dev Agent Record
|
|
|
|
|
+
|
|
|
|
|
+### Agent Model Used
|
|
|
|
|
+
|
|
|
|
|
+### Debug Log References
|
|
|
|
|
+
|
|
|
|
|
+### Completion Notes List
|
|
|
|
|
+
|
|
|
|
|
+### File List
|
|
|
|
|
+
|
|
|
|
|
+## QA Results
|