无法使用xmlrunner进行单元测试打印日志记录输出

时间:2020-04-01 15:56:11

标签: python python-3.x python-unittest

我正在尝试使用xmlrunner与unittest生成测试结果的xml。我希望该报告包括我的日志记录输出。 但这似乎不起作用。

例如,在此代码中,日志输出未显示在xml报告中。

import unittest
import logging
import xmlrunner
import sys


class Test(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        logging.getLogger().debug("setUpClass")

    def test_step_001(self):
        logging.getLogger().debug("test_step_001")

    @classmethod
    def tearDownClass(cls):
        logging.getLogger().debug("tearDownClass")


if __name__ == '__main__':
    logging.basicConfig(level=logging.DEBUG, format="%(asctime)s %(levelname)s %(message)s", stream=sys.stdout)
    unittest.main(testRunner=xmlrunner.XMLTestRunner(output='test-reports'))

1 个答案:

答案 0 :(得分:0)

我只是在做这个。非常愚蠢。 您可以在设置函数中设置日志处理程序。这将创建一个分层的分隔符,该分隔符可在xmlrunner内部运行。

    @classmethod
    def setUpClass(cls):
        handler = logging.StreamHandler(sys.stdout)
        handler.setLevel(logging.INFO)
        log.addHandler(handler)
        log.debug("setUpClass")