运行pytest时如何彻底屏蔽所有警告信息?
pytest全局屏蔽所有警告的实现方案
方式1:命令行执行时临时生效
- 执行测试命令时追加
-W ignore参数,即可屏蔽本次测试运行的所有警告,命令示例:pytest -W ignore - 可与其他pytest参数组合使用,比如开启详细输出的场景:
pytest -v -s -W ignore
方式2:配置文件永久生效
在项目根目录的pytest配置文件中添加对应规则,后续每次执行测试都会自动屏蔽所有警告,支持三种常用配置格式:
pytest.ini配置
[pytest] addopts = -W ignore
pyproject.toml配置
[tool.pytest.ini_options] addopts = "-W ignore"
tox.ini配置
[testenv] commands = pytest -W ignore deps = pytest
方式3:单测试文件局部生效
如果仅需要在指定测试文件内屏蔽警告,可在文件开头添加如下代码:
import warnings warnings.filterwarnings("ignore")
该配置优先级高于全局配置,仅作用于当前文件所属的测试进程
补充说明
如果后续需要排查警告问题,仅需移除对应ignore配置即可,也可将ignore替换为default/error等动作实现不同的警告处理逻辑。
内容的提问来源于stack exchange,提问作者KZiovas
相关产品推荐
相关产品推荐

