9

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

5

Я иногда хочу просто вставить несколько операторов print в свой код и посмотреть, что будет выведено при его выполнении. Обычно я "тестирую" его с помощью существующих тестов pytest. Однако, когда я запускаю их, я не вижу никакого стандартного вывода (по крайней мере, в PyCharm, моем IDE).

Существует ли простой способ увидеть стандартный вывод во время выполнения тестов pytest?

5 ответ(ов)

0

Чтобы вывести все операторы print на консоль при запуске тестов, используйте параметр -s. Например, вы можете выполнить команду:

py.test exampletest.py -s

Это позволит вам увидеть все выводимые на экран сообщения из файла exampletest.py во время выполнения тестов.

0

Попробуйте выполнить pytest -s -v test_login.py для получения более подробной информации в консоли.

-v — это сокращение от --verbose (подробный вывод).

-s означает "отключить все захватывание" (disable all capturing).

0

Вы можете вывести результаты печати с помощью следующих команд. Флаг -rP позволяет более явно отображать вывод печати, чем флаги -s, --capture=no и --capture=tee-sys:

pytest -rP
pytest -s
pytest --capture=no
pytest --capture=tee-sys
0

Команда, которую вы привели, запускает тесты с использованием pytest и имеет следующие параметры:

  • test_name.py — имя файла с тестами, которые вы хотите запустить.
  • -v (или --verbose) — включает более подробный вывод, так что вы увидите больше информации о том, какие тесты были запущены и какие из них прошли или не прошли.
  • -s — отключает захват вывода, что позволяет вам видеть все сообщения, которые выводятся в процессе выполнения тестов (например, print).

Так что, да, всё довольно просто! Эта команда запускает тесты из указанного файла в режиме подробного вывода, позволяя вам видеть стандартные сообщения.

0

Я бы предложил использовать команду -h. Есть довольно интересные команды, которые могут быть полезны. Однако для этого конкретного случая достаточно использовать -s, что является сокращением для --capture=no.

pytest <test_file.py> -s
Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь