Python 如何在具有会话范围的pytestfixture中捕获stdout和stderr
正如标题所说,我想问的是,当在会话范围的fixture中引发异常时,是否有任何方法可以捕获stdout和stderr?我现在得到的只是一个回溯,这是不够的,因为它没有通知我错误本身(真正的信息在stderr中)。我尝试使用capsys fixture,但它是函数范围的,所以这不是正确的方法。 我希望实现的是,我希望在发生错误时“提取”stdout和stderr,并引发泛型错误异常,该异常包含此输出以及有关失败的更多信息 我想象这样的情况:Python 如何在具有会话范围的pytestfixture中捕获stdout和stderr,python,pytest,Python,Pytest,正如标题所说,我想问的是,当在会话范围的fixture中引发异常时,是否有任何方法可以捕获stdout和stderr?我现在得到的只是一个回溯,这是不够的,因为它没有通知我错误本身(真正的信息在stderr中)。我尝试使用capsys fixture,但它是函数范围的,所以这不是正确的方法。 我希望实现的是,我希望在发生错误时“提取”stdout和stderr,并引发泛型错误异常,该异常包含此输出以及有关失败的更多信息 我想象这样的情况: import pytest @pytest.fixtu
import pytest
@pytest.fixture(scope='session')
def session_fixture(request):
try:
# Critical part, which produces stdout/stderr output
except Error as exc:
# Extract stdout and stderr
out, err = ...
raise CustomError(stdout=out,
stderr=err,
...
)
谢谢您的回答。我已经从cStringIO模块中找到了使用StringIO的解决方案
我从cStringIO模块中找到了使用StringIO的解决方案