Хранение глобальных данных конфигурации в среде pytest/xdist

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

Первым шагом является настройка нового тестового прогона, и вызов API для этого возвращает (среди прочего) идентификатор тестового прогона. Мне нужно, чтобы этот идентификатор был доступен для всех тестов. Я хотел бы просто вставить его в глобальную переменную где-нибудь, но выполнение моих тестов с помощью xdist приводит к тому, что инфраструктура теряет значение.

Я пробовал:

  • Использование класса "глобалы"; он забыл значение при использовании xdist.
  • Хранение глобальной переменной внутри моего файла conftest.py; та же проблема, значение сбрасывается при использовании xdist. Также кажется неправильным импортировать мой контест везде.
  • Помещение класса "глобалов" внутри контеста; то же самое.

На данный момент я рассматриваю возможность записи его во временный файл, но это кажется примитивным, и я думаю, что упускаю лучшее решение. Каков наиболее правильный способ Pytest для хранения и доступа к глобальным данным в нескольких потоках xdist?

1 ответ

Можете ли вы попробовать config.cache Например -

request.config.cache.set('run_id', run_id)

ссылка на документ

Возможно, стоит заглянуть в Хоботок, так как он допускает определенные тестовые зависимости и может быть возможным решением.

Другие вопросы по тегам