Пример 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
, чтобы получить доступ к захваченному стандартному выводу, как описано здесь . Что я могу использовать в моем случае вне тестовой функции ?