【发布时间】:2019-02-07 21:31:23
【问题描述】:
您好,我想为测试创建一个单独的空数据库。我阅读了 django 文档 (https://docs.djangoproject.com/en/2.1/topics/testing/overview/) 那:
默认测试数据库名称是通过在 DATABASES 中每个 NAME 的值前面添加 test_ 来创建的。使用 SQLite 时,测试将默认使用内存数据库(即,数据库将在内存中创建,完全绕过文件系统!)。 DATABASES 中的 TEST 字典提供了许多设置来配置您的测试数据库。例如,如果您想使用不同的数据库名称,请在 TEST 字典中为 DATABASES 中的任何给定数据库指定 NAME。
所以我尝试了:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
},
'test_db': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'test_db.sqlite3'),
}
}
但测试在运行时仍然使用默认数据库
./manage.py test
如何为测试目的创建和指定一个新的空数据库?
【问题讨论】:
-
不,正如规范所说,数据库不是
default,而是test_default,所以它已经创建了一个测试数据库,但没有指定。
标签: django