django тестовый бегун не видит тесты на py2 версии, но видит их на py3 - PullRequest
1 голос
/ 20 февраля 2020

Когда я запускаю команду на py3:

python manage.py test myproject.user_management --settings mysettings.py

, я вижу, что все мои тесты работают нормально:

Выполнено 29 тестов

Но та же команда на py2:

Выполнено 0 тестов

Команда на py2 работает только когда я добавляю папку tests в команду, как :

python manage.py test myproject.user_management.test --settings mysettings.py

Я уже: 1. Дважды проверьте мой импорт __init__.py во всех папках и подпапках 2. Настройки et c.

Структура моего приложения выглядит следующим образом:

project_name
----user_management
--------__init__.py
--------tests
------------__init__.py
------------training
----------------__init__.py
----------------training.py

В python manage.py shell я могу легко сделать:

from myproject.user_management.tests import TrainingViewSetTest

Это происходит только для нескольких приложений в моем проекте.

1 Ответ

1 голос
/ 21 марта 2020

Следуйте этой структуре для использования стандартного Django тестового бегуна:

user_management/
   __init__.py
   tests/
       __init__.py
       test_training.py

Теперь он сможет найти ваши тесты в обеих версиях.

С учетом сказанного, над годы я начал помещать все свои тесты в каталог root tests/ и использовать следующую конфигурацию pytest, чтобы найти эти тесты (setup.cfg):

[tool:pytest]
addopts = --reuse-db --ds=settings.test
python_files =
    tests/integration/*.py
    tests/functional/*.py
test_paths =
    tests/

Это дает преимущество быстрого а также набор тестов (не ищите много каталогов и не анализируйте много файлов внутри Docker на MacOSX!)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...