gpt4 book ai didi

django - 如何针对特定数据库进行测试

转载 作者:行者123 更新时间:2023-12-04 17:53:28 25 4
gpt4 key购买 nike

我工作的公司有一个测试服务器,里面存放着所有的测试数据。我正在尝试添加一些非常需要的单元测试,这些单元测试在测试服务器上引用我们的 Django 数据库。我遇到的问题是正在创建测试数据库,而不是指向我提供的数据库。如果在这样的系统参数中进行测试,我曾尝试设置数据库:

if 'test' in sys.argv:
DATABASES = {
'default': { # VM Testing
'ENGINE': 'sql_server.pyodbc',
'NAME': 'x',
'USER': 'x',
'PASSWORD': "x",
'HOST': 'x.x.x.x', #
'PORT': '',
'OPTIONS': {
'driver': 'FreeTDS',
'dsn': 'mssql_staging_1',
'extra_params': 'TDS_VERSION=8.0',
'use_legacy_datetime': False
},
},
}

DEBUG = False
TEMPLATE_DEBUG = False

虽然它进入了 this if 语句,但在运行 python manage.py test 时仍然会创建测试数据库。有什么建议吗? FWIW 到目前为止,我所有的测试都使用 DRF 及其 APITestCase 类。谢谢!

编辑:

我试过运行python 管理.py 测试-k但 Django 仍然使用默认的测试数据库。我投入了一个固定的跟踪来检查,没有发现任何物体。终端输出是:

Using existing test database for alias 'default'...

这是我更新的更新设置:

DATABASES = {
'default': {
'ENGINE': 'sql_server.pyodbc',
'NAME': 'x',
'USER': 'x',
'PASSWORD': "x",
'HOST': 'x.x.x.x',
'PORT': '',
'OPTIONS': {
'driver': 'FreeTDS',
'dsn': 'mssql_staging_1',
'extra_params': 'TDS_VERSION=8.0',
'use_legacy_datetime': False
}
},
'replica': {
'ENGINE': 'sql_server.pyodbc',
'NAME': 'x',
'USER': 'x',
'PASSWORD': "x",
'HOST': 'x.x.x.xreplica',
'PORT': '',
'OPTIONS': {
'driver': 'FreeTDS',
'dsn': 'mssql_staging_1',
'extra_params': 'TDS_VERSION=8.0',
'use_legacy_datetime': False
},
'TEST': {
'MIRROR': 'default',
}
}
}

最佳答案

通过执行以下操作,我终于能够让我的测试运行器正常工作:

我将测试条件从暂存设置文件移至测试设置文件(称为 testing.py)

数据库设置:

if 'test' in sys.argv:
# WILL NOT WORK WHEN IF IS MISSING
DATABASES = {
'default': { # VM Testing
'ENGINE': 'sql_server.pyodbc',
'NAME': 'x',
'USER': 'x',
'PASSWORD': "x",
'HOST': 'x.x.x.x',
'PORT': '',
'OPTIONS': {
'driver': 'FreeTDS',
'dsn': 'mssql_staging_1',
'extra_params': 'TDS_VERSION=8.0',
'use_legacy_datetime': False
},
'TEST': {
'MIRROR': 'default',
}

},
}

并使用以下命令运行我的测试:

python manage.py test --settings=Project.settings.testing -k

关于django - 如何针对特定数据库进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42419809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com