繁体   English   中英

如何在单元测试期间设置django不使用内存数据库?

[英]How can I set up django not to use in-memory database during unittest?

django在内存中设置一个数据库,用于测试所选的数据库引擎是否为sqlite3。 但是,我需要数据库在文件系统上。 如何更改设置以实现此目的?

根据文件

默认情况下,测试数据库通过将test_前置为DATABASES中定义的数据库的NAME设置值来获取其名称。 使用SQLite数据库引擎时,测试将默认使用内存数据库 (即数据库将在内存中创建,完全绕过文件系统!)。 如果要使用其他数据库名称,请在TEST字典中为DATABASES中的任何给定数据库指定NAME

TEST字典中指定NAME键:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        ...
        'TEST': {
            'NAME': '/path/to/the/db/file'
        }
    }
}

请注意,对于Django 1.6及更低版本,您应该设置TEST_NAME

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3', 
        ...
        'TEST_NAME': '/path/to/the/db/file'
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM