Django 1.6测试发现找不到测试模块

Django 1.6测试发现找不到测试模块,django,django-testing,django-tests,Django,Django Testing,Django Tests,Django 1.6.10在运行这些代码时,找不到位于我的应用程序之外的测试模块(参考:) 我总是犯这些错误 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 以

Django 1.6.10在运行这些代码时,找不到位于我的应用程序之外的测试模块(参考:)

我总是犯这些错误

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文档,这些模式中的任何一种现在都可以工作(使用/是一种提供目录路径以发现该目录下的测试的方法):

仍然不知道我为什么要提供--testrunner值。我在代码中也使用了夹层,并再次确认settings.TEST_RUNNER指向django.TEST.RUNNER.DiscoverRunner


有人能帮我解释一下为什么django 1.6中需要--testrunner标志吗?提前感谢。

您应该将它们称为模块,而不是路径:

./manage.py test tests.app1
./manage.py test tests.app1.test_views

阅读有关运行测试的更多信息。

您应该将它们称为模块,而不是路径:

./manage.py test tests.app1
./manage.py test tests.app1.test_views

阅读有关运行测试的更多信息。

您应该将它们称为模块,而不是路径:

./manage.py test tests.app1
./manage.py test tests.app1.test_views

阅读有关运行测试的更多信息。

您应该将它们称为模块,而不是路径:

./manage.py test tests.app1
./manage.py test tests.app1.test_views


阅读有关运行测试的更多信息。

我的解决方案对您无效吗?用.(点)替换/无效。以前,当我让每个应用程序在自己的目录下进行测试时,我就使用了这种约定。我更喜欢将测试与代码分开,因此当更改为此文件结构时,django Discovery似乎找不到测试。我的解决方案对您不起作用吗?替换/为.(点)不起作用。以前,当我让每个应用程序在自己的目录下进行测试时,我就使用了这种约定。我更喜欢将测试与代码分开,因此当更改为此文件结构时,django Discovery似乎找不到测试。我的解决方案对您不起作用吗?替换/为.(点)不起作用。以前,当我让每个应用程序在自己的目录下进行测试时,我就使用了这种约定。我更喜欢将测试与代码分开,因此当更改为此文件结构时,django Discovery似乎找不到测试。我的解决方案对您不起作用吗?替换/为.(点)不起作用。以前,当我让每个应用程序在自己的目录下进行测试时,我就使用了这种约定。我更喜欢将测试与代码分开,因此当更改为此文件结构时,django Discovery似乎找不到测试。这不起作用。我还尝试了配置TEST\u DISCOVER\u ROOT=os.path.join(BASE\u path,“tests”)并检查它是否指向我的settings.py中的正确路径(我认为这不是必需的,因为我使用的是1.6.10)。还是没有乐趣。这确实有效。这就是Python引用模块的方式。至少,这样做会引起不同的错误。使用此选项时会出现什么错误?我会出现以下错误:django.core.exceptions.impropertlyconfigured:找不到带标签测试的应用程序。在之间,我必须在INSTALLED_APPS中包含此测试目录。我已尝试在settings.py中将测试目录添加到INSTALLED_APPS中。然后执行./manage.py test tests.app1.test_views我得到以下错误:ValueError:test标签“tests.app1.test_views”不引用测试。但是如果我将test_views.py移动到app1/tests目录下,那么它就可以正常工作了。我认为在Django 1.6中,即使测试不在app dir中,它也应该发现测试。现在通过添加--testrunner='Django.test.runner.DiscoverRunner'使其工作,即使测试运行程序指向Django.test.runner.DiscoverRunner,也不确定为什么需要这样做。我还尝试了配置TEST\u DISCOVER\u ROOT=os.path.join(BASE\u path,“tests”)并检查它是否指向我的settings.py中的正确路径(我认为这不是必需的,因为我使用的是1.6.10)。还是没有乐趣。这确实有效。这就是Python引用模块的方式。至少,这样做会引起不同的错误。使用此选项时会出现什么错误?我会出现以下错误:django.core.exceptions.impropertlyconfigured:找不到带标签测试的应用程序。在之间,我必须在INSTALLED_APPS中包含此测试目录。我已尝试在settings.py中将测试目录添加到INSTALLED_APPS中。然后执行./manage.py test tests.app1.test\u视图我得到此错误:ValueError:test label'tests.app1.test\u view'不引用测试。但是如果我将test_views.py移动到app1/tests目录下,那么它就可以正常工作了。我认为在Django 1.6中,即使测试不在app dir中,它也应该发现测试。现在通过添加--testrunner='Django.test.runner.DiscoverRunner'使其工作,即使测试运行程序指向Django.test.runner.DiscoverRunner,也不确定为什么需要这样做。我还尝试了配置TEST\u DISCOVER\u ROOT=os.path.join(BASE\u path,“tests”)并检查它是否指向我的settings.py中的正确路径(我认为这不是必需的,因为我使用的是1.6.10)。还是没有乐趣。这确实有效。这就是Python引用模块的方式。至少,这样做会引起不同的错误。使用此选项时会出现什么错误?我会出现以下错误:django.core.exceptions.impropertlyconfigured:找不到带标签测试的应用程序。在之间,我必须在INSTALLED_APPS中包含此测试目录。我已尝试在settings.py中将测试目录添加到INSTALLED_APPS中。然后执行./manage.py test tests.app1.test_views我得到以下错误:ValueError:test标签“tests.app1.test_views”不引用测试。但是如果我将test_views.py移动到app1/tests目录下,那么它就可以正常工作了。我认为在Django 1.6中,即使测试不在app dir中,它也应该发现测试。现在通过添加--testrunner='Django.test.runner.DiscoverRunner'使其工作,即使测试运行程序