Я пытаюсь запустить unittest с Django 1.3. Обычно я использую MySQL как бэкэнд базы данных, но поскольку это очень медленно, чтобы развернуть для одного unittest, я использую Sqlite3.
Итак, чтобы переключиться на Sqlite3 только для моих unittests, в моих настройках .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
Google показывает, что несколько возможно для этого error, ни один из которых не применим ко мне. Я не запускаю Apache, поэтому я не вижу, как будут проблемы с правами доступа. Файл /tmp/database.db создается, поэтому /tmp доступен для записи. Приложение django.contrib.contenttypes включено в мой INSTALLED_APPS.
Что мне не хватает?
Изменить: я снова столкнулся с этой проблемой в Django 1.5, но ни одно из предлагаемых решений не работает.