在内存数据库中使用 sqlite 运行 django

Car*_*oce 7 sqlite testing django robotframework

我正在使用 Robot Framework 进行验收测试。

为了启动 django 服务器,我python manage.py runserver从 RobotFramework运行命令。之后,我打电话给python manage.py migrate。但是测试很慢,因为没有使用内存数据库。

我尝试创建一个名为 testing 的新设置文件,并使用以下配置:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': ':memory:',
    }
}
Run Code Online (Sandbox Code Playgroud)

并在运行时使用此配置设置环境变量 DJANGO_SETTINGS_MODULE。

我先运行迁移,然后运行运行服务器,但数据库不存在。我不明白为什么。如果我使用物理数据库,它可以工作。

我试图检查 Django TestCase 如何运行和创建数据库,但我找不到它。

小智 0

您也许可以在测试开始时使用此处记录的django.db.connection.creation.create_test_db函数,然后在完成测试后调用。django.db.connection.creation.destroy_test_db