pytest框架中的pytest.ini配置文件

pytest.ini是pytest的主配置文件,主要用于全局配置pytest的行为,如指定测试收集的规则、插件配置、路径忽略等。它允许我们定制pytest的运行方式,而不必在代码中硬编码这些配置。

目录

1、基本结构

2、常见配置项及使用方法

1.addopts

2.testpaths

3.python_files

4.marks

5.filterwarnings

6.norecursedirs

3. 高级配置项

4. 注意事项


1、基本结构

pytest.ini文件是一个INI格式的文件,位于项目根目录下,用于全局配置pytest的行为,项目文件结构如下:

my_project/
│
├── my_package/
│   ├── __init__.py
│   ├── module1.py
│   ├── module2.py
│   └── ...
│
├── tests/
│   ├── __init__.py
│   ├── test_module1.py
│   └── test_module2.py
│
└── pytest.ini

文件内容基本结构如下:

[pytest]
; 配置项 = 值
; 注释行使用分号;开头

2、常见配置项及使用方法

1.addopts

作用:定义pytest命令行的额外选项。
使用示例:

[pytest]
addopts = -v --tb=short --junitxml=junit-results.xml

此配置将使得pytest在运行时默认开启详细模式(-v),使用简短的追踪回溯(--tb=short),并将测试结果输出至JUnit格式的报告文件(--junitxml=junit-results.xml)。

以下是addopts在pytest.ini中一些常见且实用参数的简要概述:

-v (--verbose): 增加输出信息的详细程度,让测试报告更详尽。

-q (--quiet): 减少输出,适用于需要较少日志信息的时候。

-k EXPRESSION: 运行名称或节点id中匹配EXPRESSION的测试用例,实现条件性测试执行。

-m MARKEXPR: 根据标记表达式MARKEXPR选择性地运行测试,如-m "smoke or regression"。

-x / --exitfirst: 遇到第一个失败或错误立即停止测试执行。

--maxfail=N: 允许最多N个失败后终止测试,预防大量失败时的资源消耗。

-n NUM: 并行运行测试,NUM指定工作进程的数量,加快测试速度。

-s (--capture=no): 禁用输出捕获,让print语句直接显示,便于调试。

--junitxml=PATH: 将测试结果输出为JUnit格式的XML文件,便于CI/CD集成。

-p no:PLUGINNAME: 禁用特定的pytest插件。

--tb=STYLE: 设置 traceback(追踪回溯)样式,如short、line、native等,控制错误信息的详细程度。

2.testpaths

作用:指定pytest在哪些目录下查找测试脚本。
使用示例:

[pytest]
testpaths = tests my_tests

pytest将只在tests和my_tests目录下查找测试文件。

3.python_files

作用:定义被视为测试文件的文件名模式。
使用示例:

[pytest]
python_files = test_*.py mytests_*.py

除了默认的test_*.py和*_test.py,还将识别以mytests_开头的文件作为测试文件。

4.marks

作用:定义自定义标记及其说明。
使用示例:

[pytest]
markers =
    smoke: 快速验证核心功能的测试
    regression: 回归测试,用于确认已修复的问题不再出现

这样定义后,可以在测试函数上使用@pytest.mark.smoke或@pytest.mark.regression。

5.filterwarnings

作用:控制Python警告的处理方式。
使用示例:

[pytest]
filterwarnings =
    ignore::DeprecationWarning

忽略所有的DeprecationWarning警告。

6.norecursedirs

作用:指定在递归查找测试文件时应忽略的目录。
使用示例:

[pytest]
norecursedirs = .git __pycache__ .venv

忽略.git、__pycache__和.venv目录。

3. 高级配置项

xfail_strict: 控制预期失败(xfail)测试的严格模式。
python_classes: 指定测试类的命名模式。

python_functions :指定测试函数的命名模式
log_cli: 是否在命令行显示日志。
log_level: 设置日志级别。
timeout: 设置测试用例的超时时间。
插件配置: 如plugins = pytest-cov pytest-xdist等,用于启用和配置第三方插件。

具体使用如下:

[pytest]
xfail_strict=true               ; 启用严格模式,预期失败的测试将被视为失败
python_classes=Test*            ; 指定测试类以Test开头
python_functions=test_*         ; 指定测试函数以test_开头
log_cli=true                    ; 在命令行显示日志
log_level=DEBUG                 ; 设置日志级别为DEBUG
timeout=10                      ; 设置测试用例的超时时间为10秒
plugins=pytest-cov;pytest-xdist ; 启用并配置第三方插件

常用配置实例

[pytest]
#配置运行时参数
addopts = -vs
#配置发现用例的位置
testpaths = ./testcases
#配置并修改发现模块的默认规则
python_files = test_*.py
#配置并修改发现类的默认规则
python_classes = Test*
#配置并修改发现用例的默认规则
python_functions = test_*

#标记用例(冒烟测试,分模块运行测试用例,接口和web分离)
markers=
    smoke:冒烟测试
    user:用户管理模块

4. 注意事项

编码:确保文件编码为UTF-8,特别是当文件中包含非ASCII字符时。
注释:使用分号;进行注释,保持配置文件的可读性。
更新性:pytest的配置选项随版本更新可能会有所变化,建议定期查阅最新文档。

希望以上内容能帮助大家对关于pytest.ini配置文件内容的基本使用有帮助

相关推荐

  1. pytest框架pytest.ini配置文件

    2024-06-12 07:34:01       9 阅读
  2. pytest.ini配置文件

    2024-06-12 07:34:01       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-12 07:34:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-12 07:34:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-12 07:34:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-12 07:34:01       20 阅读

热门阅读

  1. Qwen等大模型使用 vLLM部署详解

    2024-06-12 07:34:01       11 阅读
  2. 算法训练营day56

    2024-06-12 07:34:01       8 阅读
  3. Elasticsearch 第一期:基础的基础概念

    2024-06-12 07:34:01       10 阅读
  4. c++题目_T307715 风之循环

    2024-06-12 07:34:01       8 阅读
  5. web前端培训生:深入探索与技能进阶之路

    2024-06-12 07:34:01       8 阅读
  6. Objective-C 学习笔记 | 范畴

    2024-06-12 07:34:01       7 阅读
  7. python3按列表元素中字典的value排序

    2024-06-12 07:34:01       7 阅读
  8. 深度搜索 copilot 插件

    2024-06-12 07:34:01       6 阅读
  9. 达梦数据库忘记dba密码如何修改密码

    2024-06-12 07:34:01       6 阅读
  10. Docker面试整理-Docker Swarm是什么?

    2024-06-12 07:34:01       10 阅读
  11. Django模板标签CSRF

    2024-06-12 07:34:01       8 阅读