我正在使用 pytest 编写测试。我有一种情况,SystemExit
如果输入错误,某些函数会在终端上抛出一些错误消息。
我想为抛出的情况编写测试SystemExit
并验证输出错误消息中是否存在特定字符串。
这是代码:
def test_validate_input():
...
with pytest.raises(SystemExit) as error:
_validate_function(test_wrong_input)
assert error.value.code == 1
error
如果我运行验证某些输入的实际功能,我无法在命令行上获得输出错误消息。请让我知道我在这里缺少什么。
编辑:
我正在调用 asubprocess.call_output
来运行一个引发错误的命令。我必须stderr=subprocess.STDOUT
在call_output
调用中添加作为参数来获取错误消息。然后我在测试中使用了@p3j4p5 的答案。