跳到主要内容

测试环境配置文档

概述

本文档详细说明了邮轮穿舱件管理系统后台的测试环境配置要求和使用方法,重点分析了pytest.ini配置文件及其相关测试架构。

测试环境配置要求

1. 系统要求

  • Python版本: 需要Python 3.8+
  • 操作系统: 支持Linux、Windows、macOS
  • 数据库: 支持PostgreSQL/MySQL/SQLite(根据项目配置)
  • 内存: 最低2GB RAM
  • 存储: 至少1GB可用空间

2. 依赖环境变量

测试环境需要配置以下环境变量:

  • ENV=test - 标识当前为测试环境
  • MPLBACKEND=Agg - Matplotlib后端配置
  • DISPLAY= - 图形显示设置(测试环境通常为空)

3. 测试框架配置

pytest.ini配置分析

pytest.ini

[pytest]
addopts = --cov=app/ --cov-report=term-missing
asyncio_mode = auto
env =
ENV=test
MPLBACKEND=Agg
DISPLAY=

配置项详解:

配置项说明
addopts--cov=app/ --cov-report=term-missing启用代码覆盖率测试,覆盖app目录,在终端显示缺失的覆盖率
asyncio_modeauto自动处理异步测试,支持async/await语法
envENV=test等设置测试环境变量

4. 测试目录结构

test/

test/
├── __init__.py
├── conftest.py
├── test_global_error_handling.py
├── test_permission_router.py
├── test_root_router.py
├── test_user_router.py

测试环境使用方法

1. 环境准备

# 安装依赖
pip install -r requirements.txt

# 设置测试环境变量
export ENV=test
export MPLBACKEND=Agg
export DISPLAY=

2. 运行测试

# 运行所有测试
pytest

# 运行特定测试文件
pytest test/test_user_router.py

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

# 运行测试并显示详细输出
pytest -v

3. 测试架构分析

测试文件组织架构图

flowchart TD
A[测试入口] --> B[conftest.py<br/>测试配置]
B --> C[test_global_error_handling.py<br/>全局错误处理]
B --> D[test_permission_router.py<br/>权限路由]
B --> E[test_root_router.py<br/>根路由]
B --> F[test_user_router.py<br/>用户路由]

C --> G[测试用例执行]
D --> G
E --> G
F --> G
G --> H[覆盖率报告]

测试执行流程

sequenceDiagram
participant T as 测试运行器
participant C as conftest.py
participant M as 测试模块
participant A as app模块
participant R as 测试报告

T->>C: 加载测试配置
C->>M: 设置测试环境
M->>A: 执行测试用例
A-->>M: 返回测试结果
M->>R: 生成覆盖率数据
R-->>T: 输出测试报告

4. 代码覆盖率配置

覆盖率测试架构

pytest.ini#L1-L2

flowchart LR
A[pytest启动] --> B[覆盖率检测器]
B --> C[app/目录扫描]
C --> D[代码执行跟踪]
D --> E[覆盖率分析]
E --> F[终端报告输出]
F --> G[缺失行号显示]

覆盖率配置说明:

  • --cov=app/: 检测app目录下的所有代码
  • --cov-report=term-missing: 在终端显示未覆盖的代码行号
  • 支持生成HTML、XML等多种格式的覆盖率报告

5. 异步测试支持

异步测试执行流程

pytest.ini#L2

stateDiagram-v2
[*] --> 测试初始化
测试初始化 --> 异步环境准备
异步环境准备 --> 异步测试执行
异步测试执行 --> 结果验证
结果验证 --> 资源清理
资源清理 --> [*]

异步测试执行 --> 异常处理
异常处理 --> 资源清理

6. 测试环境最佳实践

测试数据管理

  • 使用fixture管理测试数据
  • 每个测试用例独立的数据环境
  • 测试后自动清理测试数据

性能优化建议

  • 使用pytest-xdist进行并行测试
  • 合理设置测试超时时间
  • 避免在测试中执行耗时操作

依赖关系分析

测试框架依赖图

flowchart TD
P[pytest] --> C[pytest-cov]
P --> A[pytest-asyncio]
P --> X[pytest-xdist]

C --> D[覆盖率报告]
A --> E[异步支持]
X --> F[并行测试]

style P fill:#e1f5fe
style C fill:#f3e5f5
style A fill:#e8f5e8

项目配置依赖

pyproject.toml#L6-L9

Aerich数据库迁移配置:

  • tortoise_orm = "app.tortoise_config.AERICH_CONFIG" - 数据库ORM配置
  • location = "./migrations" - 迁移文件位置
  • src_folder = "./." - 源代码根目录

索引

邮轮穿舱件管理系统后台的测试环境配置完善,具有以下特点:

  1. 完整的测试覆盖: 通过pytest-cov实现代码覆盖率检测
  2. 异步支持: 使用asyncio_mode=auto支持异步测试
  3. 环境隔离: 通过环境变量实现测试环境隔离
  4. 模块化测试: 测试文件按功能模块组织,结构清晰

测试环境配置为项目的质量保证提供了坚实的基础,支持持续集成和自动化测试流程。

参考文件: