Тестовое открытие Django 1.6 не может найти тестовые модули
Django 1.6.10 не может найти тестовые модули, расположенные вне моих приложений, при выполнении любого из этих кодов (ссылка: https://docs.djangoproject.com/en/1.6/topics/testing/overview/)
./manage.py test tests/app1/
./manage.py test tests/app1/test_views
Я продолжаю получать эти ошибки
django.core.exceptions.ImproperlyConfigured: App with label tests/app1/ could not be found
django.core.exceptions.ImproperlyConfigured: App with label tests/app1/test_views could not be found
Вот моя структура проекта:
- project
- app1
- __init__.py
- models.py
- views.py
- forms.py
- admins.py
- app2
- ..as per above
- tests
- __init__.py (blank)
- app1
- __init__.py (blank)
- test_views.py
- test_forms.py
- app2
- __init__.py (blank)
- test_views.py
- test_walkthrough.py
Я прочитал Django Discovery runner несколько раз и до сих пор не могу понять, где я ошибся. Любая помощь, пожалуйста - что я скучаю
Замена / с. выдает ту же ошибку, однако при выполнении
./manage.py test tests.app1.test_views.MyTestCase
./manage.py test tests.app1.test_views.MyTestCase.test_mymethod
Я получаю ValueError.
ValueError: Test label 'tests.app1.test_views.MyTestCase.test_mymethod' should be of the form app.TestCase or app.TestCase.test_method
Дальнейшее обновление: я, наконец, заставил его работать, добавив --testrunner='django.test.runner.DiscoverRunner' в командную строку. Согласно Django doc, любой из этих шаблонов теперь работает (использование / - это способ указать путь к каталогу для обнаружения тестов под этим каталогом):.
./manage.py test --testrunner='django.test.runner.DiscoverRunner' tests.app1
./manage.py test --testrunner='django.test.runner.DiscoverRunner' tests.app1.test_views.MyTestCase
./manage.py test --testrunner='django.test.runner.DiscoverRunner' tests/app1/
До сих пор не знаю, почему я должен предоставить значение --testrunner. Я тоже использую мезонин в своем коде и дважды подтвердил, что settings.TEST_RUNNER указывает на django.test.runner.DiscoverRunner
Может кто-нибудь помочь объяснить, зачем мне нужен флаг --testrunner в django 1.6? Заранее спасибо.
1 ответ
Вы должны ссылаться на них как на модули, а не на пути:
./manage.py test tests.app1
./manage.py test tests.app1.test_views
Узнайте больше о выполнении тестов в документации.