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



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

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()

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

另外,我希望能够通过命令行参数设置日志记录。有没有办法做到这一点?

一种方法是在TestCase子类的setUp代码中执行此操作。您将执行以下操作:

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)

这应该会激活整个项目的日志记录(除非您要更改您关心的层次结构中更下方的记录器的级别(。

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

最新更新