Pytest аварийно завершает работу при совместном использовании плагинов json-report и xdist

У меня проблема с pytest-json-report а также pytest-xdistплагины работают вместе. По сути, тесты проходят гладко, когда запускаются с этими двумя раздельными устройствами, поэтому с функциональной точки зрения проблем нет.

Проблема начинается только тогда, когда включены оба. Я получаю это после инициализации узлов (работает с-n 2):

INTERNALERROR> Traceback (most recent call last):
INTERNALERROR>   File "/path/to/test/root/.venv/lib/python3.7/site-packages/_pytest/main.py", line 196, in wrap_session
INTERNALERROR>     session.exitstatus = doit(config, session) or 0
INTERNALERROR>   File "/path/to/test/root/.venv/lib/python3.7/site-packages/_pytest/main.py", line 246, in _main
INTERNALERROR>     config.hook.pytest_runtestloop(session=session)
INTERNALERROR>   File "/path/to/test/root/.venv/lib/python3.7/site-packages/pluggy/hooks.py", line 286, in __call__
INTERNALERROR>     return self._hookexec(self, self.get_hookimpls(), kwargs)
INTERNALERROR>   File "/path/to/test/root/.venv/lib/python3.7/site-packages/pluggy/manager.py", line 93, in _hookexec
INTERNALERROR>     return self._inner_hookexec(hook, methods, kwargs)
INTERNALERROR>   File "/path/to/test/root/.venv/lib/python3.7/site-packages/pluggy/manager.py", line 87, in <lambda>
INTERNALERROR>     firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,
INTERNALERROR>   File "/path/to/test/root/.venv/lib/python3.7/site-packages/pluggy/callers.py", line 208, in _multicall
INTERNALERROR>     return outcome.get_result()
INTERNALERROR>   File "/path/to/test/root/.venv/lib/python3.7/site-packages/pluggy/callers.py", line 80, in get_result
INTERNALERROR>     raise ex[1].with_traceback(ex[2])
INTERNALERROR>   File "/path/to/test/root/.venv/lib/python3.7/site-packages/pluggy/callers.py", line 187, in _multicall
INTERNALERROR>     res = hook_impl.function(*args)
INTERNALERROR>   File "/path/to/test/root/.venv/lib/python3.7/site-packages/xdist/dsession.py", line 112, in pytest_runtestloop
INTERNALERROR>     self.loop_once()
INTERNALERROR>   File "/path/to/test/root/.venv/lib/python3.7/site-packages/xdist/dsession.py", line 135, in loop_once
INTERNALERROR>     call(**kwargs)
INTERNALERROR>   File "/path/to/test/root/.venv/lib/python3.7/site-packages/xdist/dsession.py", line 177, in worker_workerfinished
INTERNALERROR>     assert not crashitem, (crashitem, node)
INTERNALERROR> AssertionError: ('path_to_test/test_file.py::test_function[TestName]', <WorkerController gw1>)
INTERNALERROR> assert not 'path_to_test/test_file.py::test_function[TestName]'

Возмутителя спокойствия найти сложно, так как трассировка стека не завершена.

Я пробовал несколько способов избавиться от него:

  1. Подъем версии xdist (вверх и вниз)
  2. То же самое и с версией json-отчета
  3. Натыкаясь на сам pytest - также вверх и вниз
  4. Очистка всех пользовательских хуков, которые я перезаписал (так что в основном плагины работают по умолчанию)
  5. Вызов json-report переключателями строки cmd или помещением в pytest_configure
  6. Работает на python 3.8.x
  7. Работает на разных ОС.

Мои вопросы:

  1. Были ли у кого-нибудь подобные проблемы?
  2. Как отладить его, чтобы выяснить первопричину проблемы

И, конечно, буду благодарен за другие предложения и идеи, как с этим справиться.

0 ответов

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