簡體   English   中英

如何在django中將特定數據庫用於單個測試?

[英]How to use a specific database for a single test in django?

有誰知道如何在Django中對單個測試使用特定的數據庫?

編輯:目前,我正在使用sqlite進行測試,但是,我想使用mysql數據庫進行特定測試(def test_benchmark ...),它將對一些sql語句進行基准測試。

謝謝

在Django中,您可以在settings.py文件中設置數據庫。 配置應如下所示:

DATABASES = {
    'default': {
        'NAME': 'db_name',
        'ENGINE': 'sql_server.pyodbc',
        'HOST': 'server',
        'USER': 'django',
        'PASSWORD': 'django',
        'OPTIONS' : { "use_mars" : False,
                      "provider" : "SQLNCLI10",
                      "extra_params" : "MARS Connection=True"},

    }
}

我不知道有任何內置方法可以執行此操作-但我也沒有誠實地尋找它。 一種可能的(骯臟的)破解方法是檢查您的設置(這只是另一個Python模塊)中sys.argv中的內容,並為您的特定測試提供備用數據庫設置,即:

# settings.py
import os, sys


DATABASES = {    
   'default': {
       'NAME': 'db_name',
        'ENGINE': 'your.engine',
        'HOST': 'server',
        'USER': 'django',
        'PASSWORD': 'django',
    }
}

if "test" in sys.argv and "your-test-name" in sys.argv:
    DATABASES = {    
         'default': {
            'NAME': 'other_db_name',
            'ENGINE': 'your.engine',
            'HOST': 'server',
            'USER': 'django',
            'PASSWORD': 'django',
        }  
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM