Как очистить захваченный stdout / stderr в pytest вне тестовой функции во время сбора? - PullRequest
0 голосов
/ 03 ноября 2019

Пример test.py без каких-либо реальных тестовых функций:

print(1)
# clear stdout here
print(2)
1/0 # arbitrary error

Вызов на pytest:

$ python3 -m pytest test.py 
============================= test session starts ==============================
platform linux -- Python 3.6.7, pytest-4.5.0, py-1.8.0, pluggy-0.11.0
rootdir: /home/user/Documents
collected 0 items / 1 errors                                                   

==================================== ERRORS ====================================
___________________________ ERROR collecting test.py ___________________________
test.py:4: in <module>
    1/0
E   ZeroDivisionError: division by zero
------------------------------- Captured stdout --------------------------------
1
2
!!!!!!!!!!!!!!!!!!! Interrupted: 1 errors during collection !!!!!!!!!!!!!!!!!!!!
=========================== 1 error in 0.07 seconds ============================

Как видите, захватываются 1 и 2,Я хочу очистить стандартный вывод между ними, поэтому будет отображаться только 2. Внутри тестовой функции я могу использовать прибор capsys, чтобы получить доступ к захваченному стандартному выводу, как описано здесь . Что я могу использовать в моем случае вне тестовой функции ?

...