如何在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')
我正在使用 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')