如何在 Python 的单元测试中设置日志记录级别
How to set logging level in a unit test for 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)
。
这应该会为您的整个项目激活日志记录(除非您正在更改您关心的层次结构中更下方的记录器级别)。
不幸的是,我不知道从命令行执行此操作的方法。
我正在 运行我的库中进行特定的单元测试,我想从中获取更多日志记录。我通过以下方式 运行 设置它:
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)
。
这应该会为您的整个项目激活日志记录(除非您正在更改您关心的层次结构中更下方的记录器级别)。
不幸的是,我不知道从命令行执行此操作的方法。