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





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