如何在django中使用特定数据库进行单个测试?

时间:2013-11-22 15:26:14

标签: python django testing tdd

有没有人知道如何在Django中使用特定数据库进行单个测试?

编辑:目前,我正在使用sqlite进行测试,但是,我想使用mysql数据库进行特定测试(def test_benchmark ...),这将对某些sql语句进行基准测试。

由于

2 个答案:

答案 0 :(得分:0)

在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"},

    }
}

答案 1 :(得分:0)

我不知道有任何内置方法可以做到 - 但我并没有诚实地寻找它。一个可能的(脏)黑客是检查你的设置中sys.argv中的内容(这只是另一个Python模块),并为您的特定测试设置备用数据库设置,即:

# 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',
        }  
    }