Поведение коллекции тестов pytest-django непоследовательно

У меня есть проект Django, который настроен с помощью pytest-django, и, казалось бы, все работает просто отлично. Однако недавно я добавил тесты в тестовый файл и заметил, что они не подхватываются командой pytest. Вот несколько вещей, которые я пробовал:

  • Добавление @pytest.mark.django_db к новым тестам приводит к их корректному сбору, но этот декоратор должен использоваться только в случае необходимости доступа к базе данных, а этим тестам доступ к базе данных не нужен.
  • Перемещение немаркированных тестов так, чтобы они находились после маркированного теста в том же файле, приводит к тому, что 3 немаркированных теста подхватываются бегуном тестирования, но теперь маркированный тест не собирается.
  • Запуск pytest на этом конкретном файле приводит к тому, что все тесты будут собраны (и пройдены) с декораторами или без них на тестах, которым они не нужны.

Мне не удалось обнаружить ничего неправильного в конфигурации pytest, хотя я отметил, что мы также используем инструмент Coverage для измерения покрытия кода тестами. Файл pytest.ini очень прост:

[pytest]
env_files = .env
addopts = --cov . --cov-report html --cov-report xml --cov-config "coverage/.coveragerc" --disable-warnings
DJANGO_SETTINGS_MODULE = config.settings.test

Я также заметил, что эта проблема относится не только к этому одному файлу; есть еще несколько файлов с немаркированными тестами, которые не собираются pytest, хотя такое поведение кажется непоследовательным.

Как заставить pytest собирать все тесты в файле независимо от того, запускаю ли я pytest на одном файле или на всех файлах, независимо от того, украшены ли тесты излишне, а также независимо от порядка тестов внутри файлов?

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