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

Для сохранения логов (принтов) при использовании Pytest-xdist можно воспользоваться несколькими способами:

1. **Использование встроенной функциональности Pytest.**
Pytest позволяет перенаправить вывод через sys.stdout и sys.stderr в файл, используя параметры командной строки --capture=sys или --log-cli-level=INFO --log-cli-format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'. При этом все принты будут сохранены в указанный файл.

2. **Использование логгирования в тестах.**
В тестах можно использовать библиотеку logging для записи логов в файл. Например:

import logging

log_format = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
logging.basicConfig(filename='test_logs.log', format=log_format, level=logging.INFO)

Затем добавьте логгеры в ваши тесты:

def test_example():
    logging.info("This is an informational message.")
    assert 1 == 1

3. **Использование плагина pytest-testmon.**
Этот плагин сохраняет только изменения при повторном выполнении тестов, что помогает быстрее определить причину отклонений. Для сохранения вывода в файл можно использовать следующий параметр:

pytest test_file.py --testmon push

4. **Использование сторонних библиотек.**
Можно также воспользоваться сторонними библиотеками для сохранения логов, такими как loguru или python-json-logger. Они обладают более расширенными возможностями настройки логирования.

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