Druckausgabe in Unittests unterdrücken [duplizieren]
Diese Frage hat hier bereits eine Antwort:
Stellen Sie die Standardausgabe einer Funktion in Python still, ohne sys.stdout in den Papierkorb zu werfen und jeden Funktionsaufruf wiederherzustellen 8 answersBearbeiten Bitte beachte, dass ich Python 2.6 verwende (wie markiert)
Sag ich habe das folgende:
class Foo:
def bar(self):
print 'bar'
return 7
Und sagen, ich habe den folgenden Komponententest:
import unittest
class ut_Foo(unittest.TestCase):
def test_bar(self):
obj = Foo()
res = obj.bar()
self.assertEqual(res, 7)
Also wenn ich laufe:
unittest.main()
Ich bekomme
bar # <-- I don't want this, but I *do* want the rest
.
----------------------------------------------------------------------
Ran 1 test in 0.002s
OK
Exit code: False
Meine Frage lautet: Gibt es eine Möglichkeit, die Ausgabe des zu testenden Objekts zu unterdrücken, während die Ausgabe des unittest-Frameworks erhalten bleibt?
Bearbeite Diese Frage ist kein Duplikat desgeflaggte Frage, das fragt, ob stdout einer bestimmten Funktion in einem normalen Python-Skript stummgeschaltet werden soll.
Wenn diese Frage nach dem Ausblenden des normalen Standardwerts eines Python-Skripts beim Ausführen von Unittests fragt. Ich möchte weiterhin, dass die unitteste Standardausgabe angezeigt wird, und ich möchte die Standardausgabe meines getesteten Skripts nicht deaktivieren.