Является ли pytest-xdist потокобезопасным с помощью singleton - PullRequest
1 голос
/ 21 мая 2019

Я загружаю новый проект Selenium с использованием Python. Исходя из мира Java, я использовал, чтобы обернуть экземпляр Webdriver в ThreadLocal. Таким образом, я уверен, что когда мои тесты выполняются параллельно с TestNG, мои сеансы Webdriver будут изолированы и не будут разделены между потоками.

Я хочу реализовать то же поведение в Python. Для синглтона я могу использовать MetaClass . Для запуска теста в paralel я могу использовать pytest-xdist. Но вы можете сказать мне, если оба совместимы, то есть моя сессия не будет смешана?

1 Ответ

0 голосов
/ 14 июня 2019

Если вы хотите иметь параллелизм с xdist и быть уверенным, что с изоляцией все в порядке, используйте флаг --boxed, как в примере ниже:

# Execute tests in [N] forked subprocess. Won't work on windows
pytest --dist=each --tx [N]*popen//python=python --boxed

Или в качестве альтернативы вы можете использовать сервер socker для выполнения кода или даже ssh. Подробнее об этом можно узнать здесь: https://stackoverflow.com/a/56390281/2067976.

Удачи!

...