Чтобы отображать журналы во время выполнения тестов с помощью pytest, вы можете использовать различные методы. Вот некоторые распространенные подходы с примерами кода:
-
Использование параметра
-s
:
При запуске pytest вы можете включить параметр-s
для захвата и отображения стандартного вывода, включая журналы. Вот пример:pytest -s
-
Использование параметра
--log-cli-level
:
pytest позволяет явно установить уровень журнала с помощью--log-cli-level
вариант. Этот параметр принимает такие уровни журнала, какDEBUG
,INFO
,WARNING
,ERROR
илиCRITICAL
. Будут отображены журналы указанного уровня и выше. Вот пример:pytest --log-cli-level=DEBUG
-
Использование приспособления
caplog
:
pytest предоставляет приспособлениеcaplog
, которое записывает журналы, созданные во время выполнения теста. Затем вы можете получить доступ к захваченным журналам и утвердить их. Вот пример:import logging def test_logging(caplog): caplog.set_level(logging.DEBUG) logging.debug('This is a debug log') logging.info('This is an info log') assert 'debug log' in caplog.text assert 'info log' in caplog.text
-
Использование специального обработчика журнала.
Вы можете создать собственный обработчик журнала, который перенаправляет журналы на стандартный вывод или в файл. Таким образом, вы можете контролировать, где отображаются журналы. Вот пример:import logging class StdoutHandler(logging.StreamHandler): def __init__(self): super().__init__(stream=sys.stdout) def test_logging(): logger = logging.getLogger() logger.addHandler(StdoutHandler()) logger.info('This is a log')
Это всего лишь несколько способов отображения журналов во время выполнения тестов с помощью pytest. Не забудьте выбрать подход, который лучше всего соответствует вашим требованиям и настройке проекта.