Покрытие Pytest с django выдает неверный результат при параллельном запуске

Когда я запускаю свой набор тестов с параллельным выполнением, я получаю различные результаты по сравнению с запуском только одной программы запуска тестов.

Я попробовал два подхода, и оба не дали должных результатов. Эти команды давали либо только один частичный результат, либо меньше, чем у нас было запущено.

Я пробовал с покрытием и pytest вместе:

COVERAGE_PROCESS_START=./my_app coverage --parallel-mode --concurrency=multiprocessing  run -m pytest -m "not e2e" -n 4

Также с помощью pytest и pytest-cov:

pytest -m "not e2e" -n 4 --cov=my_app

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

После их выполнения я выполнил coverage combine и coverage report. При параллельном выполнении результаты всегда неполные, по сравнению с выполнением только с одним тестовым бегуном, который работает совершенно нормально:

coverage run -m pytest -m "not e2e"

Это мой coveragerc:

[run]
include = my_app/*
omit = *migrations*, *tests*
plugins =
    django_coverage_plugin

[report]
show_missing = true

Кто-то знает, как получить правильные результаты покрытия при параллельном запуске pytest?

Вернуться на верх