85 lines
2.4 KiB
Markdown
85 lines
2.4 KiB
Markdown
|
|
# 测试文件目录
|
||
|
|
|
||
|
|
本目录包含宁夏智慧养殖监管平台的测试文件和测试用例。
|
||
|
|
|
||
|
|
## 📋 测试文件索引
|
||
|
|
|
||
|
|
### 🔧 性能监控测试
|
||
|
|
- [`performance-monitor-test.js`](performance-monitor-test.js) - 性能监控系统功能测试
|
||
|
|
|
||
|
|
## 🧪 测试类型说明
|
||
|
|
|
||
|
|
### 单元测试
|
||
|
|
位于各个模块目录下的 `__tests__` 或 `test` 子目录中,测试单个函数或组件的功能。
|
||
|
|
|
||
|
|
### 集成测试
|
||
|
|
测试多个模块之间的交互和数据流,确保系统各部分能够正确协作。
|
||
|
|
|
||
|
|
### 端到端测试
|
||
|
|
从用户角度测试完整的业务流程,验证系统的整体功能。
|
||
|
|
|
||
|
|
### 性能测试
|
||
|
|
测试系统在各种负载条件下的性能表现,包括响应时间、吞吐量等指标。
|
||
|
|
|
||
|
|
## 🏃♂️ 运行测试
|
||
|
|
|
||
|
|
### 后端测试
|
||
|
|
```bash
|
||
|
|
cd backend
|
||
|
|
npm test # 运行所有测试
|
||
|
|
npm run test:unit # 运行单元测试
|
||
|
|
npm run test:integration # 运行集成测试
|
||
|
|
npm run test:performance # 运行性能测试
|
||
|
|
```
|
||
|
|
|
||
|
|
### 前端测试
|
||
|
|
```bash
|
||
|
|
cd admin-system/frontend
|
||
|
|
npm test # 运行所有测试
|
||
|
|
npm run test:unit # 运行单元测试
|
||
|
|
npm run test:e2e # 运行端到端测试
|
||
|
|
```
|
||
|
|
|
||
|
|
### 测试覆盖率
|
||
|
|
```bash
|
||
|
|
npm run test:coverage # 生成测试覆盖率报告
|
||
|
|
```
|
||
|
|
|
||
|
|
## 📊 测试报告
|
||
|
|
|
||
|
|
测试运行后会在以下位置生成报告:
|
||
|
|
- `coverage/` - 测试覆盖率报告
|
||
|
|
- `test-results/` - 测试结果详情
|
||
|
|
- `screenshots/` - 端到端测试截图(如有失败)
|
||
|
|
|
||
|
|
## ✅ 测试最佳实践
|
||
|
|
|
||
|
|
1. **测试命名**: 使用描述性的测试名称,清楚表达测试意图
|
||
|
|
2. **测试隔离**: 确保测试之间相互独立,不依赖执行顺序
|
||
|
|
3. **数据清理**: 测试后清理测试数据,避免影响其他测试
|
||
|
|
4. **模拟外部依赖**: 使用 mock 模拟外部 API 和服务
|
||
|
|
5. **测试覆盖率**: 保持较高的代码覆盖率,重点关注核心业务逻辑
|
||
|
|
|
||
|
|
## 🔧 测试工具
|
||
|
|
|
||
|
|
### 后端测试工具
|
||
|
|
- **Jest**: JavaScript 测试框架
|
||
|
|
- **Supertest**: HTTP 接口测试
|
||
|
|
- **Sinon**: 测试间谍、存根和模拟
|
||
|
|
|
||
|
|
### 前端测试工具
|
||
|
|
- **Vitest**: Vue 3 推荐的测试框架
|
||
|
|
- **Vue Test Utils**: Vue 组件测试工具
|
||
|
|
- **Cypress**: 端到端测试框架
|
||
|
|
|
||
|
|
## 📝 编写新测试
|
||
|
|
|
||
|
|
1. 在对应模块目录下创建测试文件
|
||
|
|
2. 遵循现有的测试文件命名约定
|
||
|
|
3. 编写清晰的测试用例
|
||
|
|
4. 运行测试确保通过
|
||
|
|
5. 检查测试覆盖率
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
*最后更新: 2025年1月*
|