如何禁止py.test内部弃用警告

2020/12/07 02:22 · python ·  · 0评论

有没有办法抑制pytest的内部弃用警告?

语境:我期待评估从移植测试套件的难度nosepytest该套件相当大,并且大量使用基于nose样式yield的测试生成器。

我想先确保现有测试通过pytest,然后再将测试生成器更改为parameterized

$ pytest path-to-test-folder使用pytest 3.0.4运行时,页面和

WC1 ~repos/numpy/numpy/lib/tests/test_twodim_base.py yield tests are deprecated, and scheduled to be removed in pytest 4.0

有没有办法关闭这些警告?

来自pytest --help

--disable-pytest-warnings
                      disable warnings summary, overrides -r w flag

pytest -p no:warnings,或将以下内容添加到pytest.ini或tox.ini中:

[pytest]
addopts = -p no:warnings

结果将是绿色,没有任何警告迹象。请参阅https://docs.pytest.org/en/latest/warnings.html#disabling-warnings-summary中的文档

对于想要干净输出的测试套件,这可能是有效的用例。

请注意,始终隐藏所有警告可能会导致您错过重要警告。如果您只想隐藏特定的警告,请查看Cloc的答案

我认为您不想隐藏所有警告,而只是隐藏不相关的警告。并且在这种情况下,会从导入的python模块中删除警告。

阅读有关警告捕获的pytest文档

-W命令行选项和filterwarnings ini选项都基于Python自己的-W选项warnings.simplefilter,因此,请参考Python文档中的这些部分,以获取其他示例和高级用法。

因此,您可以使用python的-W选项过滤警告

似乎已pytest完全删除了过滤器,因为它会DeprecationWarning在运行时显示所有过滤器,并且Python的有关默认警告过滤器的文档明确指出:

在常规版本中,默认警告过滤器具有以下条目(按优先顺序排列):

default::DeprecationWarning:__main__
ignore::DeprecationWarning
ignore::PendingDeprecationWarning
ignore::ImportWarning
ignore::ResourceWarning

因此,在您的情况下,如果您想说过滤想要忽略的警告类型,例如那些DeprecationWarning,只需运行pytest命令,并带有-Woption即可:

$ pytest path-to-test-folder -W ignore::DeprecationWarning

编辑:从colini的注释,可以按模块筛选。忽略所有sqlalchemy的弃用警告的示例:

ignore::DeprecationWarning:sqlalchemy.*:

然后,您可以列出已安装的模块,这些模块会在输出中产生过多的噪声 pytest

与文件一起使用,而不是在命令行中使用:

您可能希望在pytest.ini文件中列出这些过滤器:

[pytest]
filterwarnings =
    ignore::DeprecationWarning

在pytest.ini文件中,您可以添加:

[pytest]
addopts = -p no:warnings

在命令行的行下面传递。如果您的测试套件使用外部系统处理警告,这可能会很有用。

-p否:警告

或者,如果您只想隐藏一些不推荐使用的警告,请在pytest.ini文件中添加以下语句

[pytest]
filterwarnings =
    ignore:.*U.*mode is deprecated:DeprecationWarning

这将忽略所有DeprecationWarning类型的警告,其中消息的开头与正则表达式“。* U. * mode已弃用”相匹配。

或尽管不推荐,但您可以使用

--disable-warnings

命令行选项可完全禁止来自测试运行输出的警告摘要。

我不想隐藏所有警告,所以我把它放在 pytest.ini

[pytest]
filterwarnings =
    ignore::DeprecationWarning
本文地址:http://python.askforanswer.com/ruhejinzhipy-testneibuqiyongjinggao.html
文章标签: ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!