【发布时间】:2017-02-16 16:07:07
【问题描述】:
我有一堆单元测试,其中一个我想将日志输出捕获到变量中(这意味着运行测试的人不应该看到它)。在我开始考虑这样做之前,我一直在尝试让一个简单的测试用例起作用:
import logging
import sys
from cStringIO import StringIO
logging.basicConfig(stream=sys.stderr)
logger = logging.getLogger(__name__)
class Abc():
@staticmethod
def pr():
logger.setLevel("WARN")
old_stderr = sys.stderr
sys.stderr = mystderr = StringIO()
logger.warn('bla bla bla')
sys.stderr = old_stderr
print mystderr.getvalue()
if __name__ == '__main__':
Abc.pr()
但事实并非如此。它输出:
WARNING:__main__:bla bla bla
(empty line from print)
我做错了什么?
【问题讨论】:
标签: python unit-testing logging