如何使用会话范围捕获pytest fixture中的stdout和stderr

时间:2017-07-26 11:09:27

标签: python pytest

如标题所示,我问在会话范围的夹具中引发异常时是否有任何方法可以捕获stdout和stderr?我现在得到的只是一个追溯,这是不够的,因为它没有告诉我有关错误本身(真正的信息是在stderr)。我试图使用capsys fixture,但它的功能范围,所以这不是正确的方法。 我希望实现的是,我想在发生错误时'提取'stdout和stderr并引发一般错误异常,其中包含此输出以及有关失败的更多信息。

我想象这样的事情:

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,
                          ...
                          )

感谢您的回答。

1 个答案:

答案 0 :(得分:0)