В разных тестах Pytest Xdist были собраны ошибки
Первый раз пишу здесь, и я пытался найти последние 2 дня решение моей проблемы с xdist. Когда я пытаюсь запустить с n=2 или чем-то более высоким, я иногда (иногда я говорю, потому что это работает случайным образом) получаю сообщение об ошибке
Different tests were collected between gw1 and gw0. The difference is:
--- gw1
+++ gw0
@@ -1,2 +1,2 @@
+test_Sign_Up.py::test_sign_up[chrome] test_Sign_Up.py::test_sign_up[firefox]
-test_Sign_Up.py::test_sign_up[chrome]
Извиняюсь, если это что-то простое исправить, но после просмотра стольких постов я лично почувствовал, что не нашел своего ответа. Если вам нужна дополнительная информация, пожалуйста, дайте мне знать, и я постараюсь вернуться к ней как можно быстрее! Спасибо!
Редактировать: Настройка
Python 3.5.3
Pytest 3.1.2
Xdist 1.17.1
1 ответ
Если использование недавно выпущенного pytest 3.2 не исправляет вашу ошибку, попробуйте заполнить хеш интерпретатора python фиксированным числом, чтобы получить стабильную сортировку для структур, которые полагаются на хеширование:
PYTHONHASHSEED=0 pytest -n 2
Немного предыстории, чтобы понять, как работает pytest-xdist
Каждый рабочий выполняет стандартный сбор и отправляет собранные тестовые идентификаторы (по порядку) обратно на главный узел. Главный узел гарантирует, что каждый рабочий собрал одинаковое количество тестов и в том же порядке, потому что с этого момента планировщик будет отправлять только тестовые индексы (а не весь идентификатор узла) каждому рабочему, чтобы сообщить им, какой тест выполнить. Вот почему коллекция должна быть одинаковой для всех рабочих.
Чтобы решить эту проблему, убедитесь, что параметры тестового примера не зависят от процесса и находятся в отсортированном порядке.