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

2.7 KiB
Raw Permalink Blame History

后端测试文档

测试结构

本测试目录包含项目管理系统后端的单元测试和集成测试,主要测试以下模块:

  • 认证模块:测试用户登录、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            # 测试文档

运行测试

安装依赖

# 安装测试依赖
pip install pytest pytest-cov

运行所有测试

# 在backend目录下运行
pytest

# 运行测试并生成覆盖率报告
pytest --cov=app

# 运行测试并生成HTML格式的覆盖率报告
pytest --cov=app --cov-report=html

运行特定模块的测试

# 运行认证模块测试
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流程中,每次代码提交时自动运行测试,确保代码质量。