2012-05-12 9 views
6

mientras todas las pruebas se completan sin errores y los accesorios se cargan realmente. ¿Es el problema de Django 1.4?Django 1.4 dice "No se especificó ninguna base de datos. Proporcione la ruta de al menos un dispositivo en la línea de comando".

Tenga en cuenta que solo algunas aplicaciones provocan este mensaje de error (no existe una diferencia conceptual entre las pruebas unitarias de las aplicaciones y sus dispositivos correspondientes).

Actualización 1: el contenido fasttest.py:

DATABASES = {'default': 
    { 
    'ENGINE': 'django.db.backends.sqlite3', 
    'NAME': ':memory:', 
    } 
} 

~/django_project$ ./manage.py test appname --traceback --settings=fasttest 
Creating test database for alias 'default'... 
.....................No database fixture specified. Please provide the path of at least one fixture in the command line. 
. 
---------------------------------------------------------------------- 
Ran 22 tests in 8.426s 

OK 
Destroying test database for alias 'default'... 

Actualización 2:, obviamente, los comentarios, aunque estoy agradecido por los intentos, sólo disparos en la oscuridad. La base de datos no importa, ni SQLite3, ni los DB de prueba de Postgres resuelven el problema.

+0

Realmente necesitamos mucho más detalles. ¿Puedes copiar todo el seguimiento de la pila en la pregunta? También sería bueno ver la sección de la base de datos de su archivo settings.py. – Paragon

+0

Si recuerdo bien, debe especificar la ruta de la base de datos si va a utilizar sqlite3 como soporte de base de datos. Esto solía ser un requisito comentado en Django 1.3.1. No puedo decir con seguridad que sea el mismo para 1.4, pero pueden intentarlo. –

+0

En realidad, creo que los dos puntos son el problema con el DB. Intente sacarlos y vea si funciona. –

Respuesta

7

Tuve el mismo problema con los dispositivos de prueba que habían funcionado bien en 1,4.

Para mí, tuve un caso de prueba en el que no estaba usando un accesorio, y por eso me estaba poniendo los accesorios a un conjunto vacío como esto:

class MyTestCase(TestCase): 
    fixtures = [] 

cuando me comentó que la línea, el error se fue:

class MyTestCase(TestCase): 
# fixtures = [] 
+0

El 'TestCase._fixture_setup()' de Django solo verifica 'hasattr ('fixtures')' en lugar de buscar contenido, luego llama a loaddata, que es de donde proviene el reclamo. Puede evitar tanto el mensaje de error como la carga real del dispositivo configurando algo falso, ya que loaddata no se queja de eso: 'fixtures = ['BOGUS']' –

Cuestiones relacionadas