|
|
@@ -900,74 +900,80 @@ NODE_ENV=development
|
|
|
|
|
|
### 增强特定标准
|
|
|
- **测试框架**: 使用Vitest + Testing Library + hono/testing + Playwright
|
|
|
-- **测试位置**: `__tests__` 文件夹与源码并列
|
|
|
+- **测试位置**: 统一在 `tests/` 目录中,按类型分层组织
|
|
|
- **覆盖率目标**: 核心业务逻辑 > 80%
|
|
|
- **测试类型**: 单元测试、集成测试、E2E测试
|
|
|
- **测试策略**: 详见 [测试策略文档](./testing-strategy.md)
|
|
|
|
|
|
### 测试策略
|
|
|
|
|
|
+详细的测试策略、标准、执行流程和最佳实践请参考 [测试策略文档](./testing-strategy.md)。
|
|
|
+
|
|
|
**实际测试结构**:
|
|
|
```text
|
|
|
tests/
|
|
|
-└── e2e/ # E2E测试 (Playwright)
|
|
|
- ├── fixtures/ # 测试夹具数据
|
|
|
- │ ├── test-users.json # 测试用户数据
|
|
|
- │ ├── roles.json # 角色数据
|
|
|
- │ └── test-data.ts # TypeScript测试数据
|
|
|
- ├── pages/ # 页面对象模型
|
|
|
- │ └── admin/ # 管理后台页面对象
|
|
|
- │ ├── login.page.ts # 登录页面对象
|
|
|
- │ ├── dashboard.page.ts # 仪表板页面对象
|
|
|
- │ └── user-management.page.ts # 用户管理页面对象
|
|
|
- ├── specs/ # 测试规范
|
|
|
- │ └── admin/ # 管理后台E2E测试
|
|
|
- │ ├── dashboard.spec.ts # 仪表板测试
|
|
|
- │ ├── login.spec.ts # 登录测试
|
|
|
- │ ├── settings.spec.ts # 设置测试
|
|
|
- │ └── users.spec.ts # 用户管理测试
|
|
|
- ├── utils/ # 测试工具
|
|
|
- │ └── test-setup.ts # 测试设置工具
|
|
|
- ├── global-setup.ts # 全局设置
|
|
|
- ├── global-teardown.ts # 全局清理
|
|
|
- └── playwright.config.ts # Playwright配置
|
|
|
-```
|
|
|
-
|
|
|
-**前端测试位置**:
|
|
|
-```text
|
|
|
-src/client/
|
|
|
-├── __integration_tests__/ # 前端集成测试
|
|
|
-│ └── admin/ # 管理后台集成测试
|
|
|
-│ ├── dashboard.test.tsx # 仪表板集成测试
|
|
|
-│ ├── login.test.tsx # 登录集成测试
|
|
|
-│ └── users.test.tsx # 用户管理集成测试
|
|
|
-└── admin/
|
|
|
- └── pages/
|
|
|
- └── __tests__/ # 页面单元测试
|
|
|
- ├── Users.test.tsx # 用户页面单元测试
|
|
|
- └── debug.test.tsx # 调试页面单元测试
|
|
|
-```
|
|
|
-
|
|
|
-**后端测试位置**:
|
|
|
-```text
|
|
|
-src/server/
|
|
|
-├── api/
|
|
|
-│ ├── auth/ # 认证API
|
|
|
-│ │ └── __tests__/ # 认证测试
|
|
|
-│ │ └── auth.integration.test.ts # 认证集成测试
|
|
|
-│ └── users/ # 用户API
|
|
|
-│ └── __tests__/ # 用户测试
|
|
|
-│ └── users.integration.test.ts # 用户集成测试
|
|
|
-├── modules/
|
|
|
-│ └── users/ # 用户业务模块
|
|
|
-│ └── __tests__/ # 用户服务测试
|
|
|
-│ └── user.service.test.ts # 用户服务单元测试
|
|
|
-└── utils/
|
|
|
- ├── __tests__/ # 工具单元测试
|
|
|
- │ ├── backup.test.ts # 备份工具测试
|
|
|
- │ └── restore.test.ts # 恢复工具测试
|
|
|
- └── __integration_tests__/ # 工具集成测试
|
|
|
- └── backup.integration.test.ts # 备份集成测试
|
|
|
+├── e2e/ # E2E测试 (Playwright)
|
|
|
+│ ├── fixtures/ # 测试夹具数据
|
|
|
+│ │ ├── test-users.json # 测试用户数据
|
|
|
+│ │ ├── roles.json # 角色数据
|
|
|
+│ │ └── test-data.ts # TypeScript测试数据
|
|
|
+│ ├── pages/ # 页面对象模型
|
|
|
+│ │ └── admin/ # 管理后台页面对象
|
|
|
+│ │ ├── login.page.ts # 登录页面对象
|
|
|
+│ │ ├── dashboard.page.ts # 仪表板页面对象
|
|
|
+│ │ └── user-management.page.ts # 用户管理页面对象
|
|
|
+│ ├── specs/ # 测试规范
|
|
|
+│ │ └── admin/ # 管理后台E2E测试
|
|
|
+│ │ ├── dashboard.spec.ts # 仪表板测试
|
|
|
+│ │ ├── login.spec.ts # 登录测试
|
|
|
+│ │ ├── settings.spec.ts # 设置测试
|
|
|
+│ │ └── users.spec.ts # 用户管理测试
|
|
|
+│ ├── utils/ # 测试工具
|
|
|
+│ │ └── test-setup.ts # 测试设置工具
|
|
|
+│ ├── global-setup.ts # 全局设置
|
|
|
+│ ├── global-teardown.ts # 全局清理
|
|
|
+│ └── playwright.config.ts # Playwright配置
|
|
|
+├── integration/ # 集成测试
|
|
|
+│ ├── client/ # 前端集成测试
|
|
|
+│ │ └── admin/ # 管理后台集成测试
|
|
|
+│ │ ├── dashboard.test.tsx # 仪表板集成测试
|
|
|
+│ │ ├── login.test.tsx # 登录集成测试
|
|
|
+│ │ └── users.test.tsx # 用户管理集成测试
|
|
|
+│ └── server/ # 后端集成测试
|
|
|
+│ ├── auth.integration.test.ts # 认证集成测试
|
|
|
+│ ├── backup.integration.test.ts # 备份集成测试
|
|
|
+│ ├── files/ # 文件服务集成测试
|
|
|
+│ │ ├── files.integration.test.ts
|
|
|
+│ │ └── minio.integration.test.ts
|
|
|
+│ └── users.integration.test.ts # 用户集成测试
|
|
|
+├── unit/ # 单元测试
|
|
|
+│ ├── basic.test.ts # 基础单元测试
|
|
|
+│ ├── client/ # 前端单元测试
|
|
|
+│ │ └── pages/ # 页面单元测试
|
|
|
+│ │ ├── Users.test.tsx # 用户页面单元测试
|
|
|
+│ │ └── debug.test.tsx # 调试页面单元测试
|
|
|
+│ └── server/ # 后端单元测试
|
|
|
+│ ├── modules/ # 业务模块单元测试
|
|
|
+│ │ └── files/ # 文件服务单元测试
|
|
|
+│ │ ├── file.service.test.ts
|
|
|
+│ │ └── minio.service.test.ts
|
|
|
+│ ├── modules/user.service.test.ts # 用户服务单元测试
|
|
|
+│ └── utils/ # 工具单元测试
|
|
|
+│ ├── backup.test.ts # 备份工具测试
|
|
|
+│ └── restore.test.ts # 恢复工具测试
|
|
|
+└── utils/ # 测试工具
|
|
|
+ ├── client/ # 前端测试工具
|
|
|
+ │ ├── test-query.tsx # 测试查询工具
|
|
|
+ │ ├── test-render.tsx # 测试渲染工具
|
|
|
+ │ └── test-router.tsx # 测试路由工具
|
|
|
+ ├── server/ # 后端测试工具
|
|
|
+ │ ├── integration-test-db.ts # 集成测试数据库
|
|
|
+ │ ├── integration-test-utils.ts # 集成测试工具
|
|
|
+ │ ├── service-mocks.ts # 服务模拟
|
|
|
+ │ ├── service-stubs.ts # 服务桩
|
|
|
+ │ ├── test-auth.ts # 测试认证
|
|
|
+ │ └── test-db.ts # 测试数据库
|
|
|
+ └── setup.ts # 通用测试设置
|
|
|
```
|
|
|
|
|
|
**测试框架配置**:
|
|
|
@@ -975,7 +981,7 @@ src/server/
|
|
|
- **集成测试**: Vitest + 自定义测试工具
|
|
|
- **E2E测试**: Playwright
|
|
|
- **测试覆盖率**: 核心业务逻辑 > 80%
|
|
|
-- **测试位置**: `__tests__` 文件夹与源码并列
|
|
|
+- **测试位置**: 统一在 `tests/` 目录中,按类型分层组织
|
|
|
|
|
|
### 关键集成规则
|
|
|
- **现有API兼容性**: 确保测试不破坏现有API契约
|