PyDev单元测试:如何捕获日志记录到logging.Logger的文本内容在“捕获的输出”中
PyDev单元测试:如何捕获日志记录到logging.Logger的文本内容在“捕获的输出”中
我正在使用PyDev开发和单元测试我的Python应用程序。
关于单元测试,一切都很顺利,除了没有将任何内容记录到日志框架中。日志记录器不被PyDev的“捕获输出”所捕获。
我已经将所有记录到标准输出中,像这样:
import sys logger = logging.getLogger() logger.level = logging.DEBUG logger.addHandler(logging.StreamHandler(sys.stdout))
尽管如此,“捕获输出”并没有显示记录到日志记录器的内容。
这是一个示例单元测试脚本:test.py
import sys import unittest import logging logger = logging.getLogger() logger.level = logging.DEBUG logger.addHandler(logging.StreamHandler(sys.stdout)) class TestCase(unittest.TestCase): def testSimpleMsg(self): print("AA") logging.getLogger().info("BB")
控制台输出如下:
Finding files... done. Importing test modules ... done. testSimpleMsg (itf.lowlevel.tests.hl7.TestCase) ... AA 2011-09-19 16:48:00,755 - root - INFO - BB BB ok ---------------------------------------------------------------------- Ran 1 test in 0.001s OK
但是该测试的捕获输出是:
======================== CAPTURED OUTPUT ========================= AA
有谁知道如何在执行此测试期间捕获所有记录到logging.Logger
的内容吗?