South django.db.utils.IntegrityError: 运行单元测试时 django_content_type.name 不能为空
我在用 nosetest
运行测试时遇到了这个错误:django.db.utils.IntegrityError: django_content_type.name may not be NULL
。
我按照南方(south)教程的步骤做了所有事情,包括初始迁移、假迁移等等。正常使用 runserver
命令运行网站一切都很好,但在使用 test
命令时就出现了上面的错误。
另外,在我的开发环境中,我使用的是 sqlite
数据库,并且在 INSTALLED_APPS
的最后添加了 django-nose 作为测试运行器。
有没有什么线索可以帮助我解决这个问题?
1 个回答
0
好的,我自己解决了这个问题。
我发现南方(south)、鼻子(nose)和通过Django测试命令创建的内存数据库之间有一些集成问题。
我只需要在我的开发设置中定义一个叫TEST_NAME的东西,像这样:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'database.sqlite',
'TEST_NAME': 'test_database.sqlite',
}
}
就这样 :)