Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг
07 Июл 2023
2 мин
693

Как просмотреть стандартный вывод print во время выполнения pytest

Существует распространенная проблема, с которой сталкиваются многие новички при работе с Python и библиотекой для тестирования pytest. При написании кода

Существует распространенная проблема, с которой сталкиваются многие новички при работе с Python и библиотекой для тестирования pytest. При написании кода иногда возникает необходимость использовать оператор print для вывода определенной информации во время выполнения тестов. Для этого в код вносятся операторы print, которые помогают отслеживать ход выполнения программы.

Приведем пример. Пусть есть функция, которая выполняет какую-то важную работу, и хочется увидеть промежуточные результаты ее работы:

def important_function():
  print("Important function started")
  # ...
  print("Important function finished")

И есть тесты для этой функции:

def test_important_function():
  important_function()

Но когда эти тесты запускаются с помощью pytest, все операторы print игнорируются, и их вывод не появляется в консоли.

На такой вопрос есть простое решение. Чтобы увидеть стандартный вывод print во время выполнения тестов с использованием pytest, нужно воспользоваться опцией -s при запуске pytest. Опция -s указывает pytest отключить все подавления и перенаправления стандартного вывода и ошибок.

Вот как это выглядит в командной строке:

pytest -s

После запуска тестов с этой опцией все операторы print в коде будут выполняться и их результаты будут выводиться в консоль.

Важно помнить, что использование print для отладки — это временное решение, которое помогает при отладке и поиске ошибок. В финальной версии кода все операторы print обычно удаляются или заменяются на использование системы логирования.

Добавить комментарий