【发布时间】:2011-11-12 06:17:51
【问题描述】:
我正在尝试使用 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' : '',
}
}
当我使用 python manage.py test myapp.Test.test_myfunc 运行我的单元测试时,我得到了错误:
DatabaseError: no such table: django_content_type
谷歌搜索显示有一个few 和possible reasons 对于这个error,似乎都不适合我。我没有运行 Apache,所以我看不出权限会是什么问题。正在创建文件 /tmp/database.db,因此 /tmp 是可写的。应用程序 django.contrib.contenttypes 包含在我的 INSTALLED_APPS 中。
我错过了什么?
编辑:我在 Django 1.5 中再次遇到了这个问题,但建议的解决方案都不起作用。
【问题讨论】:
标签: python database django unit-testing sqlite