我正在使用Robot Framework进行验收测试。
要启动django服务器,我从RobotFramework运行python manage.py runserver
命令。在那之后,我会给python manage.py migrate
打电话。但是测试很慢,因为没有使用内存中的数据库。
我尝试创建一个名为testing的新设置文件,并使用以下配置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': ':memory:',
}
}
并在运行时使用该配置设置环境变量DJANGO_SETTINGS_MODULE。
我先运行迁移,然后运行runserver,但是数据库不存在。我不知道为什么。如果我使用物理数据库,它可以工作。
我试图检查Django TestCase是如何运行和创建数据库的,但我找不到它。
发布于 2020-05-19 05:59:14
在运行测试用例之前,我尝试通过手动调用execute_from_command_line()
来模拟make migrate
。
因此,我选择的命令是:(如果不使用诗歌,则删除poetry run
)。
poetry run ./manage.py test --settings=myproject.settings_test
我将此命令放入GNUMakefile
以允许我使用make test
。
然后在myproject/settings_test.py
内部
from .settings import *
ALLOWED_HOSTS = [ '127.0.0.1', ]
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': ':memory:',
}
}
from django.core.management import execute_from_command_line
execute_from_command_line(['./manage.py', 'migrate'])
发布于 2015-04-11 09:53:24
您可以在测试开始时使用django.db.connection.creation.create_test_db
函数documented here,然后在完成测试后调用django.db.connection.creation.destroy_test_db
。
https://stackoverflow.com/questions/27174226
复制相似问题