2016-06-09 15 views
3

Ich bin auf der Suche nach einer Möglichkeit, nur auf Konsole zu schreiben, wenn Django Tests mit hoher Ausführlichkeitsstufe ausgeführt werden. Zum Beispiel - wenn ichEinloggen Django Test mit Ausführlichkeit

python manage.py test -v 3 

laufen Es wäre meine Log-Meldungen zu trösten, aber, wenn ich

laufen
python manage.py test -v 0 

Es wäre meine Nachrichten nicht anmelden.

Ich habe versucht, logger.info() im Code zu verwenden, aber die Nachrichten werden überhaupt nicht angezeigt.

Irgendwelche Vorschläge?

Antwort

0

-v steuert die Ausführlichkeit des Testlaufers selbst (zB: DB-Erstellung, usw.), nicht die Ausführlichkeit der Protokollierung Ihrer App.

Was Sie eigentlich wollen, ist, den Logging-Level der Django App selbst zu ändern, wie in der logging documentation beschrieben.

Sie wollen einfach können die Protokollierungseinstellungen nur für die Tests außer Kraft zu setzen, oder Sie --debug-mode verwenden können settings.DEBUG-True zu setzen, und verfügen über eine DEBUG spezifische Konfiguration in Ihrem settings.py (dies ist eher üblich, da hilft es auch, wenn Entwicklung).

Dies ist ein einfaches Beispiel dafür, wie diese zu erreichen:

'loggers': { 
    '': { 
     'handlers': ['console', 'sentry'], 
     'level': 'INFO', 
    }, 
    'myapp': { 
     'level': 'DEBUG' if DEBUG else 'INFO', 
     'propagate': True, 
    }, 
}