0
我工作的公司有一臺測試服務器,它包含所有測試數據。我正在嘗試添加一些在測試服務器上引用我們的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
雖然這使得它成爲了這個if語句,運行蟒蛇manage.py測試時,仍將創建測試數據庫。有什麼建議? FWIW我所有的測試都使用DRF和APITestCase類。謝謝!
編輯:
我試圖運行 蟒蛇manage.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',
}
}
}
你可以設置一個現有數據庫的鏡像,如圖所示[文檔這裏(在https://docs.djangoproject.com/ en/1.9/topics/testing/advanced /#testing-primary-replica-configurations) – Neelik
for 1.8+您可以使用'--keepdb'標誌http://stackoverflow.com/a/37100979/4724196 – HassenPy
@Neelik I也嘗試過,但也沒有奏效。 –