|
@@ -52,29 +52,39 @@ Ready for Development
|
|
|
- **其他组件**: DataTablePagination [路径: src/client/admin/components/DataTablePagination.tsx], AuthProvider [路径: src/client/admin/hooks/AuthProvider.tsx]
|
|
- **其他组件**: DataTablePagination [路径: src/client/admin/components/DataTablePagination.tsx], AuthProvider [路径: src/client/admin/hooks/AuthProvider.tsx]
|
|
|
|
|
|
|
|
### 测试策略
|
|
### 测试策略
|
|
|
-**集成测试重点**:
|
|
|
|
|
-- 组件交互和状态管理测试
|
|
|
|
|
-- API调用和数据处理验证 [API端点: /api/users/*, /api/auth/login]
|
|
|
|
|
-- 用户界面行为测试
|
|
|
|
|
|
|
+**集成测试重点** (`src/client/admin/__integration_tests__/`):
|
|
|
|
|
+- 组件与真实API集成测试 [API端点: /api/users/*, /api/auth/login]
|
|
|
|
|
+- 用户界面行为和数据流测试
|
|
|
- 表单验证和错误处理测试
|
|
- 表单验证和错误处理测试
|
|
|
|
|
+- 路由和导航集成测试
|
|
|
|
|
|
|
|
-**E2E测试重点**:
|
|
|
|
|
|
|
+**E2E测试重点** (`tests/e2e/specs/admin/`):
|
|
|
- 完整用户工作流测试 (登录 → Dashboard → 用户管理)
|
|
- 完整用户工作流测试 (登录 → Dashboard → 用户管理)
|
|
|
-- 跨页面导航验证
|
|
|
|
|
-- 真实浏览器环境测试
|
|
|
|
|
-- 数据持久化和状态管理测试
|
|
|
|
|
|
|
+- 跨页面导航和状态持久化验证
|
|
|
|
|
+- 真实浏览器环境和网络条件测试
|
|
|
|
|
+- 生产环境场景模拟
|
|
|
|
|
|
|
|
### 技术约束
|
|
### 技术约束
|
|
|
- **测试框架**: Vitest + Testing Library (集成测试), Playwright (E2E测试)
|
|
- **测试框架**: Vitest + Testing Library (集成测试), Playwright (E2E测试)
|
|
|
- **兼容性**: 保持现有功能不变
|
|
- **兼容性**: 保持现有功能不变
|
|
|
-- **性能**: 测试执行时间合理
|
|
|
|
|
-- **测试数据**: 使用现有测试数据工厂模式 [参考: 现有测试文件中的mock数据模式]
|
|
|
|
|
|
|
+- **性能**: 测试执行时间合理(集成测试<5分钟,E2E测试<10分钟)
|
|
|
|
|
+- **测试数据**: 使用测试数据库事务回滚确保数据隔离 [参考: docs/integration-testing-best-practices.md]
|
|
|
- **环境要求**: 需要配置测试数据库连接和认证token
|
|
- **环境要求**: 需要配置测试数据库连接和认证token
|
|
|
|
|
+- **测试位置**:
|
|
|
|
|
+ - 集成测试: `src/client/admin/__integration_tests__/*.test.tsx` (使用 `.test.tsx` 后缀以匹配现有配置)
|
|
|
|
|
+ - E2E测试: `tests/e2e/specs/admin/*.spec.ts`
|
|
|
|
|
+ - 现有单元测试: `src/client/admin/**/__tests__/*.test.tsx` (保持不变)
|
|
|
|
|
|
|
|
### 集成点
|
|
### 集成点
|
|
|
-- 现有Vitest配置
|
|
|
|
|
-- CI/CD流水线
|
|
|
|
|
-- 测试覆盖率报告
|
|
|
|
|
|
|
+- **现有Vitest配置**: vitest.config.components.ts (组件测试), vitest.config.ts (API测试)
|
|
|
|
|
+- **CI/CD流水线**: GitHub Actions工作流 [.github/workflows/test.yml]
|
|
|
|
|
+ - 组件测试阶段: 运行 `npm run test:components`
|
|
|
|
|
+ - API测试阶段: 运行 `npm run test:api`
|
|
|
|
|
+ - E2E测试阶段: 运行 `npm run test:e2e`
|
|
|
|
|
+ - 覆盖率报告: 上传到Coveralls/Codecov
|
|
|
|
|
+ - 测试结果: JUnit格式报告生成
|
|
|
|
|
+- **测试覆盖率报告**: 集成到CI流水线,阈值检查
|
|
|
|
|
+- **环境变量**: 需要配置测试数据库连接字符串和认证密钥
|
|
|
|
|
|
|
|
### 安全考虑
|
|
### 安全考虑
|
|
|
- **认证数据保护**: 测试中使用的认证token需要安全处理,避免泄露
|
|
- **认证数据保护**: 测试中使用的认证token需要安全处理,避免泄露
|
|
@@ -94,6 +104,32 @@ Ready for Development
|
|
|
- Login.tsx: >95%
|
|
- Login.tsx: >95%
|
|
|
- 相关组件: >70%
|
|
- 相关组件: >70%
|
|
|
|
|
|
|
|
|
|
+### 测试执行命令
|
|
|
|
|
+```bash
|
|
|
|
|
+# 运行组件测试 (集成测试)
|
|
|
|
|
+npm run test:components
|
|
|
|
|
+
|
|
|
|
|
+# 运行API测试
|
|
|
|
|
+npm run test:api
|
|
|
|
|
+
|
|
|
|
|
+# 运行E2E测试
|
|
|
|
|
+npm run test:e2e
|
|
|
|
|
+
|
|
|
|
|
+# 运行所有测试
|
|
|
|
|
+npm run test
|
|
|
|
|
+
|
|
|
|
|
+# 运行特定组件测试文件
|
|
|
|
|
+npm run test:components -- src/client/admin/__integration_tests__/dashboard.test.tsx
|
|
|
|
|
+
|
|
|
|
|
+# 运行特定E2E测试文件
|
|
|
|
|
+npm run test:e2e -- tests/e2e/specs/admin/dashboard.spec.ts
|
|
|
|
|
+
|
|
|
|
|
+# 生成覆盖率报告
|
|
|
|
|
+npm run test:components:coverage
|
|
|
|
|
+npm run test:api:coverage
|
|
|
|
|
+npm run test:coverage
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
### 测试环境
|
|
### 测试环境
|
|
|
- **集成测试**: jsdom环境
|
|
- **集成测试**: jsdom环境
|
|
|
- **E2E测试**: Chromium浏览器
|
|
- **E2E测试**: Chromium浏览器
|