我正在两个数据库设置中测试Django(v1.11.4)应用程序: 1)在docker容器中运行的postgres数据库 要么 2)sqlite3 as(默认数据库)
当使用--keepdb
选项运行测试时,我观察到这两种设置的不同行为:对于postgres --keepdb
按预期工作(没有数据库创建并且运行测试很快)但是对于sqlite3数据库{{ 1}}似乎不起作用(对于每次测试运行,都有数据库的创建)。
是否可以--keepdb
使用sqlite3?如果是,任何想法可能会影响上述行为?
答案 0 :(得分:6)
默认情况下,Django uses an in-memory database when testing sqlite。这意味着测试数据库不是持久的。您可以通过指定测试名称在DATABASES
设置中覆盖此行为:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite',
'NAME': 'db.sqlite3',
'TEST': {
'NAME': 'testdb.sqlite3',
},
},
}