settings.py 中的我的数据库
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'dbname',
'USER': 'user',
'PASSWORD': 'password',
'HOST': 'mydb.com',
'TEST': { # it's not works
'ENGINE': 'django.db.backends.sqlite3',
'NAME': ':memory:',
}
}
但是测试部分不起作用。
我使用这个代码并且它有效,但我不喜欢它。也许数据库部分还有其他方式描述测试数据库?
if 'test' in sys.argv:
DATABASES['default'] = {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': ':memory:',
}
创建一个新文件 your_app/test_settings.py
from .settings import *
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
不要忘记使用新设置运行迁移
python manage.py migrate --settings=your_app.test_settings
最后,使用新的 test_settings.py 运行测试
python manage.py test --settings=your_app.test_settings