【发布时间】:2021-06-13 13:45:03
【问题描述】:
我正在使用 pytest 编写测试。我有一种情况,如果输入错误,某些函数会在终端上抛出 SystemExit 并显示一些错误消息。
我想为抛出SystemExit的情况编写测试,并验证输出错误消息中是否存在特定字符串。
代码如下:
def test_validate_input():
...
with pytest.raises(SystemExit) as error:
_validate_function(test_wrong_input)
assert error.value.code == 1
如果我运行验证某些输入的实际函数,我无法在命令行上获得error 中的输出错误消息。请让我知道我在这里缺少什么。
编辑:
我正在调用 subprocess.call_output 来运行引发错误的命令。我必须在call_output 调用中添加stderr=subprocess.STDOUT 作为参数来获取错误消息。然后我在测试中使用了@p3j4p5 的答案。
【问题讨论】:
-
如果这确实是记录器生成的消息,您将需要查看this thread。
-
对不起,我把
log换成了终端上的错误信息。
标签: python python-3.x pytest systemexit