# 后端测试文档 ## 测试结构 本测试目录包含项目管理系统后端的单元测试和集成测试,主要测试以下模块: - **认证模块**:测试用户登录、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流程中,每次代码提交时自动运行测试,确保代码质量。