Используя Pytest, я не могу найти способ запустить одновременно 2 тестовых класса параллельно, а у каждого класса есть несколько тестов?
Я использую Pytest и имею следующую структуру тестов:
ClassA.py
--------------- test_a
--------------- test_b
--------------- test_c
А также
ClassB.py
--------------- test_d
--------------- test_e
--------------- test_f
Я запускаю свои тесты через команду терминала (например, pytest -v -s ClassA.py)
Мой вопрос: есть ли способ запустить ClassA и ClassB параллельно (можно сказать, 2 экземпляра), сохраняя порядок в каждом классе - отдельно? Это означает, что я хочу, чтобы все тесты из ClassA запускались в 1-м экземпляре браузера, а все тесты из ClassB - в другом экземпляре.
Я также знаком с параллельным выполнением тестов с использованием подключаемого модуля pytest-xdist. Но после его использования тестовые случаи, которые находятся в ClassA и ClassB, выполняются в смешанном порядке, так что для меня это не очень хорошо.
EDITED: Моя основная цель - избежать запуска test_a в отдельном экземпляре браузера test_b. Я бы хотел, чтобы тесты каждого класса выполнялись в одном экземпляре браузера.
1 ответ
Да, это возможно. Отметьте тест порядком, используя плагин pytest-order, и используйте pytest n 2 --dist loadfile. Он запустит тест класса A в одном браузере, а затем запустит тест класса B во втором браузере. Убедитесь, что вы передаете экземпляр драйвера из conftest с областью видимости, установленной в class