Pytest-xdist как сохранить логи (принты)?

Ссылка скопирована
1 ответ

Тестирую систему с помощью Pytest. Появилась необходимость запускать тесты одновременно и параллельно. Использую для этого pytest-xdist. Однако проблема такова, что выводит логи в консоле только последнего теста или упавших. А как вывести все?
записывать принты в файлы тоже не получается. Почему то при параллельном тестировании запись в файл не идет

Дополнительно:

ну например использовать logging вместо принтов, и будет удобнее и всякие нормальные отчеты будут их резать по тестам

Есть библиотека logging, воспользуйся ею.

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Никита Орлов Ответ

Для того чтобы сохранить логи (принты) при использовании pytest-xdist, можно воспользоваться специальным плагином pytest-capturelog. Этот плагин позволяет захватывать вывод из стандартного потока вывода (stdout) и сохранять его в файл для каждого процесса, запущенного pytest-xdist.

Для начала необходимо установить плагин pytest-capturelog с помощью pip:

pip install pytest-capturelog

pip install pytest-capturelog

Затем нужно добавить опцию --capture=no в команду запуска pytest-xdist, чтобы отключить захват вывода pytest и разрешить работу pytest-capturelog. Например:

pytest -n auto --capture=no

pytest -n auto --capture=no

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

Таким образом, используя плагин pytest-capturelog с pytest-xdist, вы сможете легко сохранять логи и принты при параллельном запуске тестов, что поможет вам в дальнейшем анализе результатов и их отладке.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно