как говорится в заголовке, я спрашиваю, есть ли способ захватить stdout и stderr, когда возникает исключение в приспособлении с областью сеанса? То, что я получаю сейчас, — это просто трассировка, которой на самом деле недостаточно, поскольку она не информирует меня о самой ошибке (настоящая информация находится в stderr). Я пытался использовать приспособление capsys, но оно ограничено функциями, так что это неправильный путь. Чего я хочу добиться, так это того, что я хотел бы «извлекать» stdout и stderr при возникновении ошибки и вызывать общее исключение Error, которое содержит этот вывод, а также дополнительную информацию об ошибке.
Я представляю что-то вроде этого:
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,
...
)
Спасибо за любые ответы.