#selenium #pytest #xdist
Вопрос:
Я пытаюсь выяснить, есть ли способ контролировать/ понимать, как тесты распределяются между разными работниками, когда я использую функцию —dist=loadfile или loadscope.
Структура моего проекта такова
tests
tests_a.py
.
.
.
.
.
tests_h.py
И в каждом тестовом модуле определено случайное количество тестов. Допустим, у меня есть конкретный тест в tests_b.py что я хочу запустить в конце набора тестов и пометил его с помощью @pytest.mark.last
.
У меня также реализован механизм в этом конкретном тесте, где, если он выполняется работником и есть другие работники, выполняющие другие тесты, он будет ждать, пока все они не будут выполнены. (С помощью функции —панель мониторинга, где она обновляет количество непроверенных тестов)
Проблема, с которой я сталкиваюсь, заключается в том, что иногда тесты случайным образом назначаются разным работникам, и все остальные работники выполняют тесты, как и ожидалось, но работник, работающий над tests_b.py у которого есть функция демонтажа()(функция, которую я хочу выполнить в самом конце), запускает тест, даже если есть другие модули, которые ему необходимо завершить (скажем tests_f.py назначается этому же работнику). Все остальные работники завершают работу и закрываются. Но этот работник запускает функцию демонтажа (), которая ожидает завершения всех других тестов и застревает в цикле, потому что другие непроверенные тесты назначены этому же работнику, и они никогда не выполняются. Есть ли способ на самом деле запустить этот конкретный тест в конце всех тестов, назначенных работнику?
Спасибо