116 lines
2.7 KiB
Markdown
116 lines
2.7 KiB
Markdown
# 后端测试文档
|
||
|
||
## 测试结构
|
||
|
||
本测试目录包含项目管理系统后端的单元测试和集成测试,主要测试以下模块:
|
||
|
||
- **认证模块**:测试用户登录、token生成等功能
|
||
- **用户管理模块**:测试用户的创建、查询、更新、删除等功能
|
||
- **项目管理模块**:测试项目的创建、查询、更新、删除等功能
|
||
|
||
## 测试环境
|
||
|
||
- **测试框架**:Pytest
|
||
- **测试客户端**:FastAPI TestClient
|
||
- **测试数据库**:SQLite(内存数据库)
|
||
- **测试用户**:
|
||
- 管理员:test_admin / test_password
|
||
- 市场部:test_marketing / test_password
|
||
- 其他部门:test_other / test_password
|
||
|
||
## 测试文件结构
|
||
|
||
```
|
||
tests/
|
||
├── conftest.py # 测试配置和 fixtures
|
||
├── test_auth.py # 认证模块测试
|
||
├── test_user.py # 用户管理模块测试
|
||
├── test_project.py # 项目管理模块测试
|
||
└── README.md # 测试文档
|
||
```
|
||
|
||
## 运行测试
|
||
|
||
### 安装依赖
|
||
|
||
```bash
|
||
# 安装测试依赖
|
||
pip install pytest pytest-cov
|
||
```
|
||
|
||
### 运行所有测试
|
||
|
||
```bash
|
||
# 在backend目录下运行
|
||
pytest
|
||
|
||
# 运行测试并生成覆盖率报告
|
||
pytest --cov=app
|
||
|
||
# 运行测试并生成HTML格式的覆盖率报告
|
||
pytest --cov=app --cov-report=html
|
||
```
|
||
|
||
### 运行特定模块的测试
|
||
|
||
```bash
|
||
# 运行认证模块测试
|
||
pytest tests/test_auth.py
|
||
|
||
# 运行用户管理模块测试
|
||
pytest tests/test_user.py
|
||
|
||
# 运行项目管理模块测试
|
||
pytest tests/test_project.py
|
||
```
|
||
|
||
## 测试用例说明
|
||
|
||
### 认证模块测试
|
||
- 测试用户登录功能
|
||
- 测试token生成和验证
|
||
- 测试错误登录场景
|
||
|
||
### 用户管理模块测试
|
||
- 测试管理员获取用户列表
|
||
- 测试管理员创建用户
|
||
- 测试管理员更新用户
|
||
- 测试管理员删除用户
|
||
- 测试权限控制
|
||
|
||
### 项目管理模块测试
|
||
- 测试市场部创建项目
|
||
- 测试获取项目列表
|
||
- 测试更新项目
|
||
- 测试删除项目
|
||
- 测试项目历史记录
|
||
- 测试权限控制
|
||
|
||
## 测试覆盖范围
|
||
|
||
- API路由测试
|
||
- 业务逻辑测试
|
||
- 数据验证测试
|
||
- 权限控制测试
|
||
- 错误处理测试
|
||
|
||
## 注意事项
|
||
|
||
1. 测试使用SQLite内存数据库,不会影响生产数据库
|
||
2. 测试会自动创建和清理测试数据
|
||
3. 测试运行时会覆盖数据库依赖,使用测试数据库
|
||
4. 测试完成后会自动删除测试数据库
|
||
|
||
## 测试结果分析
|
||
|
||
测试运行完成后,会显示测试结果和覆盖率报告。通过分析测试结果,可以了解:
|
||
|
||
- 哪些功能通过了测试
|
||
- 哪些功能需要改进
|
||
- 代码覆盖率情况
|
||
- 潜在的问题和bug
|
||
|
||
## 持续集成
|
||
|
||
测试可以集成到CI/CD流程中,每次代码提交时自动运行测试,确保代码质量。
|