首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >pytest.ini 配置笔记

pytest.ini 配置笔记

作者头像
小田测测看
发布2026-06-17 17:01:44
发布2026-06-17 17:01:44
480
举报

pytest.ini

是 pytest 框架的配置文件,用于自定义 pytest 的行为和设置。它通常位于项目的根目录下。

基本结构

代码语言:javascript
复制
[pytest]
# 配置项 = 值

常用配置项

1. 基本的设置

代码语言:javascript
复制
[pytest]
# 设置测试文件命名模式
python_files = test_*.py *_test.py

# 设置测试类命名模式
python_classes = Test* *Test

# 设置测试函数命名模式
python_functions = test_* *_test

# 设置测试搜索路径
testpaths = tests unit_tests case_tests

# 忽略特定目录
norecursedirs = .* build dist node_modules

# 设置基础URL(用于API测试)
base_url = https://www.baidu.com

# 添加默认命令行参数
addopts = -v --tb=short -m "not slow"

# 注册自定义标记
markers =
    slow: 标记运行缓慢的测试
    smoke: 冒烟测试
    ui: UI相关测试
    integration: 集成测试
    regression: 回归测试

2. 日志配置

代码语言:javascript
复制
[pytest]
# 控制台日志设置
log_cli = true
log_cli_level = INFO
log_cli_format = %(asctime)s [%(levelname)s] %(name)s: %(message)s
log_cli_date_format = %H:%M:%S

# 文件日志设置
log_file = logs/pytest.log
log_file_level = DEBUG
log_file_format = %(asctime)s [%(levelname)s] %(name)s: %(message)s
log_file_date_format = %Y-%m-%d %H:%M:%S

3. 测试执行的一些控制

代码语言:javascript
复制
[pytest]
# 设置最大失败次数后停止
maxfail = 5

# 设置测试超时时间(需要pytest-timeout插件)
timeout = 30

# 设置测试执行顺序(需要pytest-random-order插件)
random_order_enabled = true
random_order_seed = 42

4. 报告与输出

代码语言:javascript
复制
[pytest]
# HTML报告设置(需要pytest-html插件)
htmlpath = reports/pytest_report.html

5. 插件配置

代码语言:javascript
复制
[pytest]
# 指定要加载的插件
plugins = my_custom_plugin

# Allure报告配置
allure_report_dir = reports/allure
allure_features = feature1, feature2

6. 环境变量

代码语言:javascript
复制
[pytest]
# 设置环境变量
env =
    API_KEY=test_key
    DB_URL=sqlite:///:memory:

7.查看当前配置:

代码语言:javascript
复制
pytest --version

最佳实践

  1. 1. 版本控制:将 pytest.ini 纳入版本控制系统
  2. 2. 最小化配置:只配置必要的选项
  3. 3. 团队一致性:确保团队使用相同的配置
  4. 4. 环境区分:使用环境变量处理不同环境的配置
  5. 5. 注释说明:为复杂配置添加注释

FAQ

Q1:配置未生效

  • • 检查文件位置:确保在项目根目录
  • • 检查文件名:必须是 pytest.ini
  • • 检查格式:确保是有效的 INI 格式

Q2:自定义标记警告

代码语言:javascript
复制
PytestUnknownMarkWarning: Unknown pytest.mark.slow

解决方案:在 pytest.ini 中定义标记

代码语言:javascript
复制
[pytest]
markers =
    slow: marks tests as slow

Q3:路径问题

使用绝对路径或相对于根目录的路径:

代码语言:javascript
复制
log_file = logs/pytest.log
htmlpath = reports/pytest_report.html

Q4:环境变量覆盖

在配置文件中设置的环境变量可能会被系统环境变量覆盖,优先使用系统环境变量。

可根据项目需求灵活调整pytest配置项

#Pytest #Python #Pytest.ini配置

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-06-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程拾光 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本结构
  • 常用配置项
    • 1. 基本的设置
    • 2. 日志配置
    • 3. 测试执行的一些控制
    • 4. 报告与输出
    • 5. 插件配置
    • 6. 环境变量
    • 7.查看当前配置:
  • 最佳实践
  • FAQ
    • Q1:配置未生效
    • Q2:自定义标记警告
    • Q3:路径问题
    • Q4:环境变量覆盖
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档