Используя 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

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