Я пытаюсь провести унитест с Джанго 1.3. Обычно я использую MySQL в качестве бэкэнда базы данных, но так как это мучительно медленно раскручиваться для одного unittest, я использую Sqlite3.
Так что, чтобы перейти на Sqlite3 только для моих unittes, в моем settings.py у меня есть:
import sys
if 'test' in sys.argv:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME':'/tmp/database.db',
'USER' : '',
'PASSWORD' : '',
'HOST' : '',
}
}
Когда я запускаю мой unittest с python manage.py test myapp. Test.test_myfunc
, я получаю ошибку:
DatabaseError: no such table: django_content_type
Googling показывает, что существует несколько возможных причин для этой ошибки , ни одна из которых не кажется мне применимой. Я не запускаю Apache, поэтому не понимаю, как это может быть связано с разрешениями. Создается файл/tmp/database ase.db, поэтому файл/tmp доступен для записи. Приложение django.contrib.contenttypes включено в мой INSTALLED_APPS.
Чего мне не хватает?
Изменить: я снова столкнулся с этой проблемой в Джанго 1,5, но ни одно из предложенных решений не работает.