我希望pytest忽略RemovedInDjango20Warning。
我目前在pytest.ini中有这个
[pytest]
filterwarnings =
ignore:RemovedInDjango20Warning
这可以使pytest运行,但不能禁止警告。
如果添加第二个冒号,则会收到很多“内部错误”消息。
如果我添加第三个冒号,则测试会运行,但不会抑制警告。
恐怕要加上第四个冒号:)
〜
我还尝试过更具体地说明该错误:
ignore:django.RemovedInDjango20Warning
和
ignore:django.utils.deprecation.RemovedInDjango20Warning
那些跑的时候,我每次都会被警告。
我得到的内部错误是:
INTERNALERROR> Traceback (most recent call last):
INTERNALERROR> File "/home/chris/.pyenv/versions/3.6.10/lib/python3.6/warnings.py", line 246, in _getcategory
INTERNALERROR> cat = getattr(m, klass)
INTERNALERROR> AttributeError: module 'django' has no attribute 'RemovedInDjango20Warning'
INTERNALERROR>
INTERNALERROR> During handling of the above exception, another exception occurred:
INTERNALERROR>
INTERNALERROR> Traceback (most recent call last):
INTERNALERROR> File "/home/chris/.virtualenvs/website-36/lib/python3.6/site-packages/_pytest/main.py", line 196, in wrap_session
INTERNALERROR> session.exitstatus = doit(config, session) or 0
[long traceback snipped]
INTERNALERROR> raise _OptionError("unknown warning category: %r" % (category,))
INTERNALERROR> warnings._OptionError: unknown warning category: 'django.RemovedInDjango20Warning'
答案 0 :(得分:12)
基于@LaurentBristiel的评论进行第二次查看时,我意识到我需要两个冒号,加上异常的完整路径,所以
[pytest]
filterwarnings =
ignore::django.utils.deprecation.RemovedInDjango20Warning
谢谢大家!