【发布时间】:2012-02-25 13:47:07
【问题描述】:
我有一个名为“fstore”的 Django 应用程序。它在 INSTALLED_APPS 中注册为“foo.bar.fstore”。当我通过“manage.py test”运行我所有的 django 测试时,我看到了它的测试结果,例如:
失败:testFilesWithDuplicatePathsDoNotOverwriteEachOther (foo.bar.fstore.tests.fileRecTests.TestFunctionality)
但是,当我尝试通过“manage.py test fstore”专门为此应用程序运行测试时,Django 告诉我:
在 0.000 秒内运行 0 次测试
如果我的应用程序名称有误或者它会给我一个错误,但它清楚地识别应用程序......它只是无法找到它的测试(即使它们位于“测试”文件夹中该应用程序文件夹中的__init__.py)。所以我的基本问题是:什么给了?或者更具体地说,我如何让这个应用程序中的测试只运行而不运行所有其余部分?
哦,为了排除简单的答案,是的,此应用同时具有 models.py 和 __init__.py。
* 编辑 *
我刚刚运行了“manage.py shell”,结果发现有些问题:
from django.db.models import get_app, get_apps
get_app("fstore")
<module 'foo.bar.search.models' from '/baz/python/foo/bar/search/models.pyc'>
这当然是完全错误模型的编译形式(不知道这是怎么发生的)。所以我删除了.pyc文件,现在我得到了一个更正常的错误:
django.core.exceptions.ImproperlyConfigured:带有标签 fstore 的应用 找不到
这是进步……但它仍然不能解释为什么 Django 找不到我的应用程序。
还有一点需要注意:尽管 Django 工作正常(我可以“manage.py runserver”、浏览我的应用程序等),但在命令行我显然根本没有应用程序。例如,尝试运行“manage.py test debug_toolbar”会给我一个类似的 ImproperlyConfigured 错误。希望这对某人意味着什么...
【问题讨论】:
-
你试过运行
python manage.py test foo.bar.fstore吗? -
是的;我得到“django.core.exceptions.ImproperlyConfigured: 找不到标签为 foo 的应用程序:-(
-
我认为这是相关的,但我不确定:当我尝试使用 South 为同一个“fstore”应用程序生成迁移时(使用 schemamigration -auto ),它告诉我应用程序没有现有的迁移......即使应用程序文件夹内的迁移文件夹内有三个迁移。我发誓,这就像 Django 认为没有“fstore”应用程序,即使有。