pytest ini

news/2025/3/11 14:12:49/文章来源:https://www.cnblogs.com/SunshineKimi/p/18764958

pytest.ini 是 Pytest 的配置文件之一,它用于集中管理测试的默认配置,避免在命令行重复输入参数。除了 pytest.ini,其他可选的配置文件包括 tox.inipyproject.toml

pytest.ini 配置项

1. 基本结构

[pytest]
# 1. 添加默认的命令行选项
addopts = -v -s --tb=short # 2. 指定测试文件目录(默认是当前目录)
testpaths = tests# 3. 匹配测试文件的模式
python_files = test_*.py *_test.py# 4. 匹配测试类
python_classes = Test*# 5. 匹配测试函数
python_functions = test_*# 6. 禁用特定警告
filterwarnings =ignore::DeprecationWarning

2. 详细参数介绍

🔹 1. addopts - 额外的命令行选项

用于指定默认的 pytest 运行参数,例如:

[pytest]
addopts = -v -s --maxfail=3 --tb=short
  • -v :详细模式(verbose),显示更多信息
  • -s :允许 print() 输出到终端
  • --maxfail=3 :如果出现 3 个失败,则停止运行
  • --tb=short :显示精简的 traceback(回溯)

🔹 2. testpaths - 指定测试目录

默认情况下,pytest 会搜索当前目录下的测试文件。
可以使用 testpaths 限定 pytest 只在特定目录中查找测试:

[pytest]
testpaths = tests integration_tests

✅ 这意味着 pytest 只会在 tests/integration_tests/ 目录下寻找测试。


🔹 3. python_files - 指定测试文件匹配模式

默认情况下,pytest 认为 test_*.py 是测试文件。
可以自定义匹配模式:

[pytest]
python_files = test_*.py *_test.py mytest_*.py

✅ 这意味着 pytest 会识别 test_xxx.pyxxx_test.pymytest_xxx.py 作为测试文件。


🔹 4. python_classes - 指定测试类匹配模式

默认情况下,pytest 只会识别以 Test 开头的类作为测试类。
可以自定义匹配:

[pytest]
python_classes = Test* Check*

✅ 这样 pytest 会识别 TestLoginCheckAPI 作为测试类。

注意:

  • 类名 不能test_ 开头,否则 pytest 不会执行其中的方法。

🔹 5. python_functions - 指定测试函数匹配模式

默认情况下,pytest 只会识别 test_ 开头的函数。
可以自定义匹配:

[pytest]
python_functions = test_* check_*

✅ 这样 pytest 会执行 test_login()check_api_response() 作为测试函数。


🔹 6. filterwarnings - 过滤警告

如果你的测试代码里有 DeprecationWarning,可以忽略它:

[pytest]
filterwarnings =ignore::DeprecationWarning

✅ 这样 pytest 不会再显示 DeprecationWarning


🔹 7. log_cli - 启用 CLI 日志

pytest 在终端输出 logging 日志:

[pytest]
log_cli = true
log_cli_level = INFO
log_cli_format = %(asctime)s [%(levelname)s] %(message)s
log_cli_date_format = %Y-%m-%d %H:%M:%S

✅ 这样 pytest 会以 INFO 级别实时输出日志。


🔹 8. timeout - 设置测试超时时间

可以给 所有测试 设置超时时间:

[pytest]
timeout = 10  # 每个测试最多运行 10 秒

✅ 如果某个测试运行超过 10 秒,pytest 会强制终止它。


🔹 9. markers - 自定义标记

如果你使用 @pytest.mark.xxx 自定义标记,需要在 pytest.ini 里声明:

[pytest]
markers =smoke: 重要的冒烟测试regression: 回归测试slow: 运行较慢的测试

然后在测试代码中使用:

import pytest@pytest.mark.smoke
def test_login():assert 1 + 1 == 2

✅ 这样你可以运行 pytest -m smoke 只执行 smoke 测试。


🔹 10. cache_dir - 缓存目录

指定 pytest 缓存测试结果的位置:

[pytest]
cache_dir = /tmp/pytest_cache

✅ 这样 pytest 会把缓存文件存到 /tmp/pytest_cache


总结

选项作用
addopts 设置默认 pytest 运行参数
testpaths 限定测试目录
python_files 匹配测试文件
python_classes 匹配测试类
python_functions 匹配测试函数
filterwarnings 过滤警告
log_cli 终端日志输出
timeout 设置超时时间
markers 自定义标记
cache_dir 指定缓存目录

你可以根据自己的测试需求配置 pytest.ini,让 pytest 更加智能化!🚀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/897253.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DCDC电源模块

车载直流电源DCDC电源模块是一种电力电子设备,它能够在电动汽车或混动汽车的电气系统中,实现直流电源电压之间的升降转换,从而确保低压电电气系统在车辆运行过程中获得稳定且适当的电源供应。 车载直流电源DCDC电源模块是一种电力电子设备,它能够在电动汽车或混动汽车…

SpringSecurity5(1-快速入门)

Spring Security提供了简单而强大的安全机制,支持身份验证和授权。基本使用包括在Spring Boot应用中引入Spring Security依赖,配置HTTP安全规则,定义用户角色和权限。通过使用内存用户存储或集成数据库,可以实现基于表单登录、HTTP基本认证等多种认证方式,确保应用程序的安…

ASE9N20-ASEMI工业自动化专用ASE9N20

ASE9N20-ASEMI工业自动化专用ASE9N20编辑:ll 一、性能卓越,能效先锋 9N20 MOS 管最为人称道的便是它超低的导通电阻。在电路中,犹如为电流开辟了一条 “高速公路”,让电能得以高效传输,极大减少了因电阻产生的热损耗。这意味着无论是为便携设备供电的 DC - DC 转换器,还是…

LayerSkip: 使用自推测解码加速大模型推理

自推测解码是一种新颖的文本生成方法,它结合了推测解码 (Speculative Decoding) 的优势和大语言模型 (LLM) 的提前退出 (Early Exit) 机制。该方法出自论文 LayerSkip: Enabling Early-Exit Inference and Self-Speculative Decoding。它通过使用 同一个模型 的早期层来生成候…

2025年我用 Compose 写了一个 Todo App

标题党嫌疑犯实锤 序言 从2月12日到3月4日这整整三周时间里,我从零开始又学习了一次 Compose。 为什么说又,是因为这已经是我第二次学习这套课程了。 故事从 4 年前说起,2021 年在意外获悉扔物线朱凯老师准备发布一套名为 Compose 的新课程,意识到这是 Android 未来的方向,…

Ubuntu设置静态IP——NetworkManager方式

1、直接在系统界面上设置静态IP的方式,不再赘述 2、命令行方式查看已经有哪些工具#查看状态 sudo systemctl status Netplan sudo systemctl status NetworkManager sudo systemctl status systemd-networkd sudo systemctl status NetworkManager出现Active,说明电脑已经安装…

《Quick Start Kubernetes》读后感

一、 为什么选择这本书? 面试的时候经常被问到 kubernetes(下称 k8s),所以打算学习 k8s。看到《Quick Start Kubernetes》的作者对自己所写的书持续地更新,被这种认真打动了,外加这本书只有100多页,所以选择了这本书作为入门 k8s 的教材。 二、这本书写了什么? 这本书介绍…

正交实验法python实现

1.等水平正交表 每个条件下的种类一样多 例1: 这是一个7因子2状态 列表里内部每一个[]表示一个因子,然后每个因子都有2种类型 #7因子2状态 from allpairspy import AllPairs parameters = [["Chrome", "Firefox"],#因子1有"Chrome"或"Fir…

如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统

本文将提供一个详细的示例,展示如何调用 DeepSeek 的自然语言处理 API 接口。我们将以情感分析为例,演示如何发送请求、处理响应以及处理可能的错误。我在业余时间开发了一款自己的独立产品:升讯威在线客服与营销系统。陆陆续续开发了几年,从一开始的偶有用户尝试,到如今线…

使用 Pixi.js 插件实现探险者小游戏(一)

什么是 Pixi Pixi 是一个非常快的 2D sprite 渲染引擎。使用它你可以轻松的利用 JavaScript 和其他 HTML5 技术制作游戏和应用程序。 Pixi 的官网地址:https://pixijs.com/ 本游戏使用的是 Pixi 的 V4.5.5 版本,官网最新版本更新到了 V8.x,两个版本 API 相差很大,建议大家学…

【设计模式】利用组合模式带你走进树形结构的世界

概述对于这个图片肯定会非常熟悉,上图我们可以看做是一个文件系统,对于这样的结构我们称之为树形结构。在树形结构中可以通过调用某个方法来遍历整个树,当我们找到某个叶子节点后,就可以对叶子节点进行相关的操作。可以将这颗树理解成一个大的容器,容器里面包含很多的成员…