Ich habe einige Django-Verwaltungsbefehle, die Methoden in anderen Klassen aufrufen, um verschiedene Aufgaben auszuführen, z. B. das Abrufen von Daten von externen APIs.Anzeigen einzelner Zeilenfortschritte während des Django-Verwaltungsbefehls und Deaktivieren während der Tests
Bei diesen Verfahren mir die Ausgabe eine einzelne Zeile, die den Fortschritt anzeigt, so etwas wie:
print('Fetched %d of %d' % (n, total) + ' '*30, end='\r')
Das funktioniert gut, aber wenn ich meine Tests laufen wird dieser ausgedruckt und Schrauben, um die .....E....F...
Display. Ich könnte in allen meinen Tests print
patchen, aber das scheint klobig.
Also (a) sollte ich diese Fortschrittslinie auf andere Weise ausgeben, und/oder (b) gibt es eine bessere Möglichkeit, diese Ausgabe zu unterdrücken, während Tests ausgeführt werden?
Sie können Ihre eigenen Wrapper rund um drucken, die überprüfen, ob sys.stdout ein Terminal ist oder nicht und abhängig davon verhalten sich anders, z. \ r für Terminal \ n für Datei oder Rohr – Jerzyk