gpt4 book ai didi

python - 当 pytest.raises 失败时,将自定义消息附加到输出的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-04 16:44:48 26 4
gpt4 key购买 nike

我的目标是 - 如果我运行以下测试:

def test_func():
with pytest.raises(APIError):
func()
并且 func() 没有引发 APIError - 我想将自定义消息发送到输出,例如“没有捕捉到 APIError”
Pytest 有一个专门用于此的功能:
with raises(SomeError, message="Custom message here"):
pass
https://docs.pytest.org/en/4.2.1/assert.html#assertions-about-expected-exceptions
但由于某种原因它没有进入更多版本(当前是 6.0.2)

最佳答案

您可以使用 pytest.fail 复制此行为。在您希望引发异常的函数之后的函数,因为只有在未引发异常的情况下才会运行。 deprecation notice解释删除它的原因,并提供这种替代方法:

import pytest

def func():
return

def test_func():
with pytest.raises(ValueError):
func()
pytest.fail("Oh no!")
$ pytest test.py

collected 1 item

test.py F [100%]

==================================================================================================== FAILURES =====================================================================================================
____________________________________________________________________________________________________ test_func ____________________________________________________________________________________________________

def test_func():
with pytest.raises(ValueError):
func()
> pytest.fail("Oh no!")
E Failed: Oh no!

test.py:9: Failed
============================================================================================= short test summary info =============================================================================================
FAILED test.py::test_func - Failed: Oh no!
================================================================================================ 1 failed in 0.16s ================================================================================================

关于python - 当 pytest.raises 失败时,将自定义消息附加到输出的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63998612/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com