Тестовое открытие 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

Узнайте больше о выполнении тестов в документации.

Другие вопросы по тегам