带有django-nose的Django:两个相同的设置文件,在运行测试命令时具有不同的行为

时间:2013-04-12 21:16:32

标签: django django-testing django-settings django-nose

使用Django 1.4.5,我正在使用django-nose 1.1.0。

我有两个没有差异的设置文件。

-> % diff local_settings.py test_settings/sqlite.py

我用以下方式运行测试:

-> % python manage.py test foo --settings=local_settings

我得到了

Ran 91 tests in 5.273s
OK (SKIP=6)

从不同的位置运行相同的相同设置

-> % python manage.py test foo --settings=test_settings.sqlite

测试保释没有全部运行:

Ran 43 tests in 1.230s
FAILED (errors=1)

我得到追溯,DatabaseError: no such table: django_content_type 回溯是通过加载网址来实现的。在那里实例化的东西调用ContentType.objects.get_for_model(self.model)。当设置相同时,这种差异怎么可能?

我的manage.py文件是通用的:

#!/usr/bin/env python

from django.core import management

if __name__ == "__main__":
    management.execute_from_command_line()

1 个答案:

答案 0 :(得分:1)

您的数据库NAME是否设置为sqlite DB的相对路径?

如果是这样,您可能只需要将syncdb与test_settings中的设置文件进行同步。

DatabaseError: no such table: django_content_type表示未找到其中一个django特定表,这听起来像是DB本身的问题,而不是您的应用或设置文件本身。