2012-05-12 3 views
6

während alle Tests ohne Fehler abgeschlossen und Fixtures tatsächlich geladen sind. Ist es Django 1.4 Problem?Django 1.4 sagt "Keine Datenbank Fixture angegeben. Bitte geben Sie den Pfad von mindestens einem Fixture in der Befehlszeile an."

Bitte beachten Sie, dass nur einige der Anwendungen diese Fehlermeldung provozieren (es gibt keinen konzeptionellen Unterschied zwischen den Komponententests der Anwendungen und ihren entsprechenden Fixtures).

Update 1: die fasttest.py Inhalt:

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'... 

Update 2: offensichtlich die Kommentare, obwohl ich für die Versuche dankbar bin, sind nur Aufnahmen im Dunkeln. Die Datenbank spielt keine Rolle, weder SQLite3 noch Postgres testing DBs lösen das Problem.

+0

Wir brauchen wirklich viel mehr Details. Können Sie den gesamten Stack-Trace in die Frage kopieren? Es wäre auch gut, den Datenbankbereich der Datei settings.py zu sehen. – Paragon

+0

Wenn ich mich gut erinnere, müssen Sie den Pfad für die db angeben, wenn Sie sqlite3 als DB-Unterstützung verwenden. Dies war früher eine Anmerkung in Django 1.3.1. Ich kann nicht sicher sein, dass es das selbe für 1.4 ist, aber Sie können versuchen. –

+0

Eigentlich denke ich, die Doppelpunkte sind das Problem mit der DB. Versuchen Sie, sie herauszunehmen und zu sehen, ob es funktioniert. –

Antwort

7

Ich hatte das gleiche Problem mit Testvorrichtungen, die unter 1.4 gut funktioniert hatten.

Für mich hatte ich einen Testfall, wo ich eine Befestigung nicht verwenden, und so war ich Befestigungen auf einen leeren Satz wie diese Einstellung:

class MyTestCase(TestCase): 
    fixtures = [] 

Als ich aus dieser Zeile kommentiert, den Fehler ging weg:

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

Djangos 'TestCase._fixture_setup()' prüft nur 'hasattr ('fixtures')', anstatt nach Inhalten zu suchen, und ruft dann loaddata auf, von wo die Beschwerde kommt. Sie können sowohl die Fehlermeldung als auch das tatsächliche Laden des Scheinwerfers umgehen, indem Sie etwas Falsches einstellen, da loaddata nicht darüber klagt: 'fixtures = ['BOGUS']' –

Verwandte Themen