2011-01-26 22 views
18

estoy especificando las bases de datos utilizando un objeto de Python:especificar nombres de base de datos test Django en settings.py

DATABASES = { 
'default':{ 
    'ENGINE':'mysql', 
    'NAME':'testsqldb', 
    'USER':'<username>', 
    'PASSWORD':'<password>', 
}, 
'dynamic_data':{ 
    'ENGINE': 'sqlite3', 
    'NAME':'', 
    'USER':'', 
    'PASSWORD':'' 
}, 
} 

¿Cómo puedo especificar el nombre de mi base de datos de prueba? He intentado usar TEST_NAME = 'auto_tests' en el archivo settings.py. Sin embargo, cuando corro python manage.py tests <app_name> me sale el siguiente mensaje:

Creating test database 'default'... 
Got an error creating the test database: (1007, "Can't create database 'test_testsqldb'; database exists") 
Type 'yes' if you would like to try deleting the test database 'test_testsqldb', or 'no' to cancel: 

Estoy esperando el sistema para crear una base de datos separada cuando se ejecuta mis pruebas, presumiblemente llamado 'auto_tests_testsqldb'; sin embargo, todavía me está preguntando sobre test_testsqldb.

¡Cualquier consejo es apreciado!

Respuesta

26

En Django 1.6 y siguientes, TEST_NAME debe ser la clave de uno de los diccionarios de su base de datos. Pero en Django 1.7 y superior, utiliza una clave TEST que es un diccionario de configuraciones para bases de datos de prueba.

es probable que desee:

DATABASES = { 
'default':{ 
    'ENGINE':'mysql', 
    'NAME':'testsqldb', 
    'USER':'<username>', 
    'PASSWORD':'<password>', 
    'TEST': { 
     'NAME': 'auto_tests', 
    } 
}, 
'dynamic_data':{ 
    'ENGINE': 'sqlite3', 
    'NAME':'', 
    'USER':'', 
    'PASSWORD':'' 
}, 
} 

Como alternativa, tal vez estás interesado en utilizar un motor diferente para sus pruebas? En ese caso, creo que solo tendrá que crear un archivo de configuración separado para probar. Puede importar desde su módulo de configuración estándar y anular DATABASES.

+1

+1 ¡Muchas gracias, la clave TEST_NAME es lo que estaba buscando! No pensé buscar en la documentación de prueba la información de configuración. –

+0

En Django 1.10 esto ahora es '" PRUEBA ": {" NOMBRE ":" auto_prueba "},' (ver https://docs.djangoproject.com/en/dev/ref/settings/#test) – kd88

Cuestiones relacionadas