我正在尝试使用Django 1.3进行单元测试.通常,我使用MySQL作为我的数据库后端,但由于单个单元测试的旋转速度非常慢,我使用的是Sqlite3.
所以,为了我的单元测试切换到Sqlite3,在我的settings.py中,我有:
import sys
if 'test' in sys.argv:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME':'/tmp/database.db',
'USER' : '',
'PASSWORD' : '',
'HOST' : '',
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行我的unittest时python manage.py test myapp.Test.test_myfunc,我得到错误:
DatabaseError: no such table: django_content_type
Run Code Online (Sandbox Code Playgroud)
谷歌搜索显示有一个小的可能 原因,这种错误,其中没有一个似乎适用于我.我没有运行Apache,所以我没有看到权限如何成为一个问题.正在创建文件/tmp/database.db,因此/ tmp是可写的.应用程序django.contrib.contenttypes包含在我的INSTALLED_APPS中.
我错过了什么?
编辑:我在Django 1.5中再次遇到这个问题,但没有提出的解决方案.