Подавить вывод на печать в юнит-тестах [дубликаты]
На этот вопрос уже есть ответ:
Отключите стандартный вывод функции в Python, не удаляя sys.stdout и не восстанавливая каждый вызов функции 8 ответовРедактировать Обратите внимание, что я использую Python 2.6 (как тег)
Скажи, что у меня есть следующее:
class Foo:
def bar(self):
print 'bar'
return 7
И скажи, что у меня есть следующий юнит-тест:
import unittest
class ut_Foo(unittest.TestCase):
def test_bar(self):
obj = Foo()
res = obj.bar()
self.assertEqual(res, 7)
Так что если я бегу:
unittest.main()
Я получил
bar # <-- I don't want this, but I *do* want the rest
.
----------------------------------------------------------------------
Ran 1 test in 0.002s
OK
Exit code: False
Мой вопрос: есть ли способ подавить выходные данные тестируемого объекта, в то же время получая выходные данные фреймворка unittest?
Редактироват Этот вопрос не является дубликатом вопрос с флажком, который спрашивает о заглушении stdout определенной функции в обычном скрипте Python.
В то время как этот вопрос задает вопрос о сокрытии обычного стандартного вывода скрипта Python во время выполнения его юнит-тестов. Я все еще хочу, чтобы стандартный вывод unittest отображался, и я не хочу отключать стандартный вывод моего протестированного сценария.