运行任何这些代码时,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的跑步者,但仍然无法找出我哪里出错了。请帮忙 - 我错过了什么
更换/用。但是在执行时会出现相同的错误
./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值。我也在我的代码中使用Mezzanine并且双重确认settings.TEST_RUNNER指向django.test.runner.DiscoverRunner
任何人都可以帮助解释为什么我需要在django 1.6中使用--testrunner标志?提前谢谢。
答案 0 :(得分:3)
你应该将它们称为模块,而不是路径:
./manage.py test tests.app1
./manage.py test tests.app1.test_views
详细了解如何运行测试in the docs。