PyDev单元测试:如何捕获日志记录到logging.Logger的文本内容在“捕获的输出”中

10 浏览
0 Comments

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的内容吗?

0