Хранение глобальных данных конфигурации в среде 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)
Возможно, стоит заглянуть в Хоботок, так как он допускает определенные тестовые зависимости и может быть возможным решением.