在Django测试

时间:2015-09-06 15:51:26

标签: django logging nosetests

我有以下配置(基于this):

'loggers': {
    'django': {
        'handlers': ['console'],
        'level': 'INFO',
    },
    'root': {
        'handlers': ['console'],
        'level': 'INFO',
    },
},

当我像这样运行我的测试时(Django 1.8.4)

./manage.py test

我在自己的代码中从源代码行获得了DEBUG级别的输出,看起来像

import logging
logging.debug("Shouldn't be seen, but is")

该行表示日志消息将转到根记录器,正如我所料:

DEBUG:root:blah: Shouldn't be seen, but is

当测试正在运行时,它说

nosetests --verbosity=1

如果我说

./manage.py test --verbosity=0

nosetests消息消失了,但调试日志记录没有消失。

发生了什么事?我的日志配置错了吗?测试是否会干扰? Django的?

我认为正在阅读我的日志配置。我通过在此配置文件中配置该记录器来抑制django.request警告。

如何调试?

(我看过this related post,但没有帮助。)

1 个答案:

答案 0 :(得分:3)

您的记录器配置未正确写入。 'root'配置超出'loggers'部分,如下所示:

'loggers': {
    'django': {
        'handlers': ['console'],
        'level': 'INFO',
    },
},
'root': {
    'handlers': ['console'],
    'level': 'INFO',
}

设置它应该有效。