Ich möchte in der Lage sein, eine vorhandene Testdatenbank zu verwenden, um meine Tests auszuführen und nicht, dass Django jedes Mal eine Datenbank erstellt und löscht, wenn ich die Tests ausführen möchte. Ist das möglich?Wie kann ich eine Datenbank angeben, die von Django Tests verwendet werden soll, anstatt sie jedes Mal erstellen zu lassen?
Antwort
Es ist möglich, hier ist ein Weg:
1) Ihre eigenen Testläufer here wie zu sehen, schauen definieren.
2) Für ihren Test Runner Blick in den default test runner, können Sie einfach kopieren und den Code und kommentieren gerade diese Zeile: connection.creation.destroy_test_db(old_name, verbosity)
, die für die Zerstörung der Test-Datenbank verantwortlich ist, und ich denke, dass Sie die connection.creation.create_test_db(..)
Spiel setzen sollte in ein Versuch, außer etwas ähnlichem vielleicht:
try:
# Create the database the first time.
connection.creation.create_test_db(verbosity, autoclobber=not interactive)
except ..: # Look at the error that this will raise when create a database that already exist
# Test database already created.
pass
3) TEST_RUNNER in setting.py zu Ihrem Testläufer Bound.
4) Jetzt ist Ihr Test wie folgt ausführen: ./manage.py Test
Das sieht also gut aus aber ich muss noch die Verbindung zum lokalen Test aufbauen db nein? –
@Ryan Detzel: Ich habe gerade meine Antwort für weitere Details bearbeitet, über Ihre Frage, ich denke mit dem Code über der Testdatenbank wird das erste Mal erstellt, dass der Test ja ausgeführt wird, wird diese Testdatenbank atomar von Django erstellt hier aussehen: http://docs.djangoproject.com/de/dev/topics/testing/?from=olddocs#the-test-database – mouad
@mouad, kann ich es so konfigurieren, dass es nicht einmal die Fixtures lädt/spült es? –
Wer Django verwenden> = 1,8
python manage.py test --keepdb
--keepdb die Testdatenbank zwischen Testläufen Behält. Dies hat den Vorteil, dass sowohl die Erstellungs- als auch die Löschaktionen übersprungen werden, was die Zeit zum Ausführen von Tests stark verkürzen kann, insbesondere in einer großen Testsuite. Wenn die Testdatenbank nicht existiert, wird sie beim ersten Durchlauf erstellt und dann für jeden weiteren Lauf beibehalten. Alle nicht angewendeten Migrationen werden auch auf die Testdatenbank angewendet, bevor die Testsuite ausgeführt wird.
Wie für Django 1.6 ?? Gibt es einen ähnlichen Weg ??? –
- 1. Soll ich jedes Mal eine brandneue SqlConnection erstellen oder versuchen, eine bestehende Verbindung jedes Mal neu zu öffnen?
- 2. Wie geben Sie an, welche Django-Version verwendet werden soll?
- 3. Definieren Sie eine Konstante, die in einer Access-Datenbank verwendet werden soll
- 4. Ich möchte Replik meiner Datenbank, die von einer anderen Datenbank verwendet werden soll
- 5. (EF6) Wie kann ich einen anderen ConnectionString angeben, der mit automatischen Migrationen verwendet werden soll?
- 6. Wie kann ich angeben, welcher Oracle-Client installiert werden soll?
- 7. Wie kann ich angeben, ob JSON oder XML in der ASP.NET-Web-API verwendet werden soll?
- 8. Lassen Sie JFrame nicht jedes Mal neu erstellen, wenn ich den Knopf
- 9. Wie erstellt man automatisch eine Postgis-Datenbank für Django-Tests?
- 10. Wie soll `removeCookiesSinceDate` verwendet werden?
- 11. Wie kann ich eine Hibernate-Sammlung erstellen, die jedes Mal neu gelesen wird, wenn ich sie anfordere?
- 12. sails js - Überprüfen Sie die Datenbank jedes Mal
- 13. Postgres Benutzer kann Datenbank nicht erstellen, wenn django Tests laufen
- 14. Soll ich für jedes Modell eine Schnittstelle erstellen?
- 15. Wie finden Sie die Datenbank, die ein Django-Objekt verwendet?
- 16. Welche Datenbank zum Speichern von Schlüsselwertpaaren (Array) verwendet werden soll
- 17. Soll Django für große, komplexe Sites verwendet werden?
- 18. Erstellen Sie eine Schaltfläche erstellen Sie eine neue Registerkarte mit unterschiedlichen Namen jedes Mal
- 19. django - angeben Datenbank für Testcase Befestigungen
- 20. Wie erstellt man eine neue Datenbank, bevor Tests ausgeführt werden?
- 21. Wie kann ich HttpContext verfügbar machen, um von meinen Unit Tests verwendet zu werden?
- 22. Lassen Sie eine Datei im Browser öffnen, anstatt sie herunterzuladen
- 23. So ändern Sie, wie ActiveAdmin die Uhrzeit anzeigt (jedes Mal)
- 24. Wie soll RedirectToRoute verwendet werden?
- 25. Spring Batch - Erstellen Sie jedes Mal eine neue Datei, anstatt sie zu überschreiben, um Daten von CSV nach XML zu übertragen
- 26. Wie vermeidet man get_absolute_url jedes Mal auf Seite (Django) aufrufen?
- 27. Welche Datenstruktur soll verwendet werden?
- 28. Kann ich eine Verzeichnisstruktur angeben, die mit dem Git Submodul ignoriert werden soll?
- 29. Wie kann ich die Postgres-Vorlage definieren, die beim Erstellen von DBs mit Doctrine2 verwendet werden soll?
- 30. SSIS Staging-Tabelle - ok, um jedes Mal neu zu erstellen?
warum möchten Sie das? Sie möchten auch die Datenbankerstellung testen ... –
Nicht wenn es Stunden dauert zu bauen. –
Sie können verschiedene DB-Engine für Tests wählen (sqlite hat viel schnellere DB-Erstellung) –