如何在Python的单元测试中设置日志记录级别

时间:2019-10-10 23:50:35

标签: python python-unittest

我正在库中运行特定的单元测试,我想从中获取更多日志记录。我以以下方式运行它:

python -m unittest my_module.my_submodule_test.MyTestClass.test_my_testcase

由于我正在执行此操作,因此my_submodule_test.py文件不会像我这样设置日志级别的底部运行:

if __name__ == '__main__':
  logging.getLogger().setLevel(logging.DEBUG)
  unittest.main()

如何以编程方式设置日志级别,以便可以从测试中获取更详细的日志记录?

此外,我希望能够通过命令行参数设置日志记录。有办法吗?

1 个答案:

答案 0 :(得分:0)

可以做到这一点的一种方法是在setUp子类的TestCase代码中进行。您将执行以下操作:

class MyTestClass(unittest.TestCase):

  def setUp(self):
    logging.basicConfig(level=logging.DEBUG)
    logging.getLogger().setLevel(logging.DEBUG)

您可以使用logging.basicConfig(level=logging.DEBUG)logging.getLogger().setLevel(logging.DEBUG)

这应该激活整个项目的日志记录(除非您在关注的层次结构中更改记录器的级别)。

不幸的是,我不知道从命令行执行此操作的方法。