Django应用程序测试将无法运行(但将运行所有测试)

时间:2012-02-02 21:25:25

标签: python django testing

我有一个名为“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次测试

  

如果我的应用程序名称错误或它会给我一个错误,但它清楚地识别应用程序...它只是无法找到它的测试(即使它们在“test”文件夹中应用程序文件夹中的__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错误。希望这对某人意味着什么......

1 个答案:

答案 0 :(得分:1)

哇,这太可怕了。所以我猜测我一直在睡觉时编辑Django核心文件,因为有一个文件(models / loading.py)已被修改为foo.bar.search app很难 - 编码到它。我没有编辑这个文件的任何bash历史记录,也没有Eclipse历史记录,我也没有理由编辑该文件,但是......因为没有其他人可以做到这一点,我想我必须有(或者有一个非常奇怪的django错误导致它编辑源代码)。

我想我会在这里提出一个关于其他人做类似事情的怪异机会的问题/答案,这对他们有所帮助,但这是一个如此奇怪的事情,我怀疑它会。