如何在manage.py测试中禁用日志记录?

8 投票
7 回答
6708 浏览
提问于 2025-04-15 23:53

我在用标准的Python日志模块。当我运行 python manage.py test 时,我想在所有测试开始之前先关闭日志记录。请问有没有什么信号或者其他方法可以让我调用 logging.disable?或者有没有其他方式可以在运行 python manage.py test 时关闭日志记录?

7 个回答

11

我用过的最简单的东西:

import logging

class MyTestClass(TestCase):
    def setUp(self):
        logging.disable(logging.CRITICAL)

这个不需要任何编辑、修补、额外安装等等。所有的日志记录功能都是完全关闭的。

12

其实有一个更好的方法可以做到这一点,使用 django-nose 这个工具,它有一个叫做 kwarg 的参数。

你只需要运行:

./bin/manage.py test --logging-clear-handlers
2

我知道的唯一方法就是直接修改 manage.py 这个文件……虽然这样做不是很优雅,但至少能让你达到想要的效果。

撰写回答