Ich versuche herauszufinden, wie Test Driven Development für GAE eingerichtet wird.
Ich starte die Tests mit:
%Vor%Ich bekomme immer den Fehler:
%Vor%Der Datenspeicher existiert nicht, bis ich ihn im setUp () erstelle, aber ich bekomme immer noch einen Fehler, dass die Entitäten bereits existieren?
Ich verwende den Code aus dem GAE-Lernprogramm .
Hier ist mein Testcode in functional_tests.py:
%Vor%Hier ist die Rückverfolgung:
%Vor%Es sieht so aus, als ob hier ein paar Dinge passieren.
Zunächst sieht es so aus, als ob Sie mit NaseGAE --with-gae
arbeiten. Das Plug-in kümmert sich um das Einrichten und Herunterfahren Ihres Testbeds, damit Sie es nicht tun müssen. Dies bedeutet, dass Sie keinen der self.testbed
-Codes benötigen und tatsächlich intern Konflikte verursachen können. Entweder wechseln Sie, um es die NaseGAE Weg zu tun, oder verwenden Sie nicht das --with-gae
Flag. Wenn Sie bei NoseGAE bleiben, verfügt es über die Option --gae-datastore
, mit der Sie den Pfad zum Datenspeicher festlegen können, der für Ihre Tests verwendet wird. Setzen Sie dann innerhalb Ihrer Testklasse die Eigenschaft nosegae_datastore_v3 = True
, damit sie für Sie eingerichtet wird:
Zweitens, so wie dev_appserver / sqlite zusammenarbeitet, lädt der Anwendungsserver die sqlite-db-Datei in den Speicher und arbeitet dort mit. Wenn der Anwendungsserver beendet wird, werden die Datenbankinhalte auf den Datenträger zurückgespült. Da Sie für Ihre Tests den gleichen Datenspeicher verwenden wie den Prozess dev_appserver.py, den Sie für Selen öffnen, sehen sie möglicherweise die Fixture-Daten, die Sie in Ihrem Test eingerichtet haben, oder nicht.
Hier ist ein Beispiel aus Ссылка
%Vor%Ich denke, diese Zeile könnte die fehlerhafte sein:
%Vor%Einstellung von datastore_file="/ tmp / datastore / datastore.db" bedeutet, dass Sie diesen vorhandenen Datenspeicher in Ihren Tests wiederverwenden möchten
Die Dokumentation zum Python-Code sagt:
Das Argument 'datastore_file' kann der Pfad zu einem vorhandenen sein Datenspeicherdatei oder None (Standard), um einen speicherinternen Datenspeicher zu verwenden Das ist zunächst leer.
Persönlich verwende ich diese in meinen Tests:
%Vor%Tags und Links python tdd google-app-engine nosetests