有没有办法抑制pytest的内部否决警告?
上下文:我正在评估将测试套件从nose
移植到pytest
的难度。这个套件相当大,并且大量使用基于nose
样式yield
的测试生成器。
我想首先确保pytest通过了现有的测试,然后可能将测试生成器更改为parameterized
。
使用pytest 3.0.4运行$ pytest path-to-test-folder
完全由
WC1 ~repos/numpy/numpy/lib/tests/test_twodim_base.py yield tests are deprecated, and scheduled to be removed in pytest 4.0
有没有办法关闭这些警告?
pytest -p no:warnings
,或者在pytest.ini或tox.ini中添加以下内容:结果为绿色,没有任何警告。请参阅https://docs.pytest.org/en/latest/warnings.html#disabling-warnings-summary上的文档。
对于需要干净输出的测试套件,这可能是一个有效的用例。
请注意,总是隐藏所有警告可能会导致您错过重要警告。If you want to hide only specific warnings, look at Cloc's answer。
我认为你不想隐藏所有的警告,只想隐藏那些不相关的警告。在本例中,来自导入的python模块的deprectation警告。
阅读关于Warnings Capture的pytest文档:
所以你可以用python的
-W
选项过滤警告!似乎
pytest
完全删除了过滤器,因为它在运行时显示了所有那些DeprecationWarning
,而Python关于Default Warning Filters的文档清楚地表明:因此,在您的例子中,如果您想要过滤您想要忽略的警告类型,比如那些
DeprecationWarning
,只需使用-W
选项运行pytest命令:编辑:根据colini的注释,可以按模块筛选。忽略来自所有sqlalchemy的不推荐警告的示例:
然后,您可以列出已安装的模块,这些模块会在
pytest
的输出中产生过多的噪声与文件一起使用,而不是在命令行中使用:
您可能希望在pytest.ini文件中列出这些筛选器:
来自
pytest --help
:相关问题 更多 >
编程相关推荐