Существует распространенная проблема, с которой сталкиваются многие новички при работе с 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
обычно удаляются или заменяются на использование системы логирования.
Добавить комментарий