运行任何这些代码时,Django 1.6.10 找不到位于我的应用程序之外的测试模块(参考: https ://docs.djangoproject.com/en/1.6/topics/testing/overview/#running-tests )
./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: 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 文档,这些模式中的任何一个现在都可以工作(使用 / 是提供目录路径以发现该目录下的测试的一种方式):。
./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 值。我也在我的代码中使用 Mezzanine 并双重确认 settings.TEST_RUNNER 指向 django.test.runner.DiscoverRunner
谁能帮助解释为什么我在 django 1.6 中需要 --testrunner 标志?先感谢您。