Я тоже столкнулся с такой же ситуацией. Используя пакет, вы сможете запускать все тесты или тесты для приложения, но не для конкретного теста или конкретного теста.
Это довольно глупо, но я решил обойти это вместо определения набора в __init__.py
, который заключается в том, чтобы просто import *
из всех других тестовых модулей, это отстой, но это работает.
Есть несколько вещей, которые я делаю, чтобы убедиться, что я не заканчиваю сгущать наборы тестов в других модулях ... __all__
объявлено в каждом тестовом модуле, поэтому только имена тестов импортируются с * и продолжайте работать Pylint, я уведомлен о переопределениях имени класса.
Сказав, что вы должны иметь возможность заставить это работать без всякой уродливой import *
хрени ... Я не использую нос и django-нос ... (который я собираюсь исправить очень скоро) ... так как это то, что вы делаете, похоже, вы можете сделать это, чтобы запустить все тесты в вашем каталоге приложений:
python manage.py test apps
или для запуска всех тестов для одного тестового модуля:
python manage.py test apps.my_app.tests.storage_tests
обратите внимание, что я не включил проект в предыдущий пример ... который, как мне показалось, работал нормально с использованием тестов носа и django-nose.
Кроме того, для запуска определенного набора тестов вы можете сделать следующее:
python manage.py test apps.my_app.tests.storage_tests:TestCase
Или для запуска одного конкретного теста:
python manage.py test apps.my_app.tests.storage_tests:TestCase.test_name