如何在pytest中忽略python UserWarning?

How to ignore python UserWarning in pytest?

我正在使用 openpyxl 解析 .xlsm 文件,并使用 pytest 进行测试。

当我打开文件时,我得到:
OpenPyxl -> 用户警告:不支持数据验证扩展,将被删除

这不是真正的问题 bcs。程序运行正常,我无法更改 .xlsm 文件来修复该问题。

但是... 当我 运行 pytest 像这样的东西时:

def test_wrong_file_format():  
    assert check_excel(open_excel('file.xlsm')) == True

我会收到我提到过的警告 check_excel(open_excel('file.xlsm')) returns 是的,测试应该成功...

有什么好的方法可以告诉 pytest "It's not a bug it's a feature" 和测试即使在收到此警告时也应该通过?

除了使用类似的东西,还有其他方法吗:

with pytest.warns(UserWarning):
    warnings.warn("my warning", UserWarning)

谢谢,
汤姆

根据官方文档(pytest), @pytest.mark.filterwarnings 是正确的方法。 只需选择正确的参数,例如:

@pytest.mark.filterwarnings('ignore::UserWarning')