【发布时间】:2013-04-05 13:10:26
【问题描述】:
对于 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
回溯来自于 url 的加载。在那里实例化的东西调用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()
【问题讨论】:
-
如果将
local_settings移动到test_settings包下并使用--settings=test_settings.local_settings再次运行测试会发生什么?另外,请检查test_settings/__init__.py中是否有任何内容。 -
相同,
__init__.py中没有任何内容 -
理想情况下,查看相同设置文件中的内容会很棒。
标签: django django-testing django-settings django-nose