2017-03-07 3 views
1

In einem Django-Projekt können Unit-Tests erstellt werden, um zu überprüfen, was wir bisher getan haben. Das Prinzip ist einfach. Wir müssen den Befehl python3 manage.py test in der Shell ausführen. Wenn ein Fehler im Programm erkannt wird, zeigt die Shell dies an und stoppt den Prozess. Das Verfahren hat jedoch eine kleine Lücke. Wenn wir mehrere Fehler haben, müssen wir sie korrigieren und den gesamten Prozess neu starten. Dieser Vorgang kann einige Minuten dauern, abhängig von unserem Programm. Gibt es eine Möglichkeit, den Prozess neu zu starten, bei dem der Fehler erkannt wurde, anstatt die gesamte Prozedur neu zu starten?Neustart des Prozesses, bei dem der Fehler erkannt wurde

EDIT:

In der Tat, ein weiteres Problem, das ich habe, ist die Datenbanken zu behalten, anstatt sie zu erstellen. Wie könnte ich so etwas tun?

Antwort

0

Wenn Sie nur fehlerhafte Tests automatisch ausführen möchten, müssen Sie einen Drittanbieter-Testtreiber wie Nose verwenden oder Ihren eigenen erstellen. Aber es lohnt sich nicht, weil ...

Sie bestimmte Tests angeben können, indem eine beliebige Anzahl von „Testetiketten“ auf ./manage.py Test auszuführen. Jede Testbeschriftung kann ein vollständiger Python-Pfad mit dem Pfad zu einem Paket, einem Modul, einer TestCase-Unterklasse oder einer Testmethode sein. Zum Beispiel:

# Run just one test method 
$ ./manage.py test animals.tests.AnimalTestCase.test_animals_can_speak 

Quelle: https://docs.djangoproject.com/en/1.10/topics/testing/overview/

Dieser Ansatz kann verwendet werden, nur die, die laufen, um wieder, die versagt haben.

Bitte beachten Sie, dass Testläufer von Drittanbietern die Datenbank wahrscheinlich jedes Mal neu erstellen, wenn Sie den Test ausführen - auch nur für den fehlgeschlagenen Test. Auf der anderen Seite hat der Django-Standard-Test-Runner die Option --keep, mit der die Datenbank wiederverwendet werden kann. Für weitere Details siehe: https://stackoverflow.com/a/37100979/267540

+0

Es ist nicht hervorragend, weil sie die Datenbanken am Anfang neu erstellen müssen. –

+0

Hier kommt die 'k-Flagge ins Bild – e4c5

Verwandte Themen