Files
2026-01-26 18:21:34 +08:00

116 lines
2.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 后端测试文档
## 测试结构
本测试目录包含项目管理系统后端的单元测试和集成测试,主要测试以下模块:
- **认证模块**:测试用户登录、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流程中,每次代码提交时自动运行测试,确保代码质量。