2017-01-05 4 views
0

Ich folgte 7-teiliges Tutorial in Django-Dokumentation. Django Projekt wurde mit Openshift quickstart erstelltOpenshift Python manage.py Test läuft nicht

Warum i

python manage.py makemigrations 
    python manage.py migrate 

vor jeder Einheit Testfallausführung

python manage.py test 

eingeben müssen Immer, wenn ich Testfall meine Anwendung hinzufügen und alle Änderungen Push zu openshift muss ich Migrationen mit SSH-Verbindung zu openshift erneut eintippen, bevor ich Tests ausführen kann, sonst sehe ich "keine solche Tabelle myapp_question" Fehlermeldung.

Mit Python manage.py dbshell sehe ich, dass die Datenbank mit geeigneten Tabellen ist, da ich bereits alle Migrationen gemacht habe.

Die Dokumentation besagt, dass, Separate, blank databases are created for the tests. Warum Openshift erfordert vor dem Test auf den Typ migrieren, ohne Modellwechsel und was zu neuen Datenbank geschieht.

ich instanziiert jeden Testfall aus

from django.test import TestCase 

und dieser Import sollte mit leeren Tisch aus der Box neue Datenbank zur Verfügung stellen erforderlich.

Sollte ich etwas in openshift Haken setzen oder settings.py ändern.

Ich kann Tests durchführen, aber ich verstehe nicht, warum kann ich einfach nicht

 manage.py test 

Typ und

Antwort

0

alle Ergebnisse erforschen schieben git Openshift mit schafft neue Laufzeit ohne django Datenbank Migrationen und Schema. Der gesamte Verlauf der Datenbank wird im Unterverzeichnis DATA gespeichert, auf das mit ssh zugegriffen werden kann.

Django-Tests erfordern einen Migrationsverlauf, um die Datenbank für Testzwecke neu zu erstellen, die eine Speicherdatenbank verwendet.

Nur durch Ausführen von Migrationen und Migrieren des Schemas für den Test wird erstellt.

Bitte korrigieren Sie mich, wenn ich falsch bin

+1

Wenn Sie eine Dateisystem-Datenbank wie SQLite und sie nicht in dem vorgesehenen persistenten Datenverzeichnis kleben, dann ja, müssen Sie es jedes Mal erstellen. Es gibt eine Umgebungsvariable, die Sie verwenden können, die den Speicherort des Verzeichnisses angibt. –

+0

Ja, ich habe vergessen zu erwähnen, dass ich SQLite-Datenbank verwendet habe, da die Cartridge viel Rechenzeit benötigt, um sie aufzubauen. Danke für die Klarstellung. Es gab das Gefühl, dass ich etwas falsch gemacht habe –

Verwandte Themen