Отключить ведение журнала во время теста manage.py? - PullRequest
7 голосов
/ 13 июня 2010

Я использую стандартный модуль регистрации Python.Когда я звоню python manage.py test, я бы хотел отключить ведение журнала до запуска всех тестов.Есть ли сигнал или какой-то другой вид хука, который я мог бы использовать для вызова logging.disable?Или есть какой-то другой способ отключить ведение журнала при запуске python manage.py test?

Ответы [ 7 ]

12 голосов
/ 03 декабря 2012

На самом деле есть гораздо лучший способ сделать это, с django-nose есть kwarg:

Просто запустите:

./bin/manage.py test --logging-clear-handlers
9 голосов
/ 26 сентября 2010

В качестве простой альтернативы вы можете отключить ведение журнала при запуске тестов в файле настроек, например так:

if 'test' in sys.argv:
    logger.removeHandler(handler)
    logger.setLevel(logging.ERROR)
6 голосов
/ 04 марта 2013

Самая простая вещь, которую я использовал:

import logging

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

Это не требует редактирования, исправлений, дополнительных установок и так далее.Все журналы полностью отключены.

4 голосов
/ 06 декабря 2010

Я предпочитаю запускать тесты с отдельным settings_test.py, где я могу удалить ненужные приложения, промежуточное ПО и другие вещи, которые мне не нужны во время тестирования.И я также могу отключить вывод логов здесь:

from settings import *
import logging

# direct all logging output to nowhere
class NullHandler(logging.Handler):
    def emit(self, record):
        pass
logging.getLogger().addHandler(NullHandler())
2 голосов
/ 13 июня 2010

Единственный способ, которым я знаю, - это отредактировать manage.py сам ... не очень элегантно, конечно, но, по крайней мере, оно должно привести вас туда, где вам нужно.

1 голос
/ 13 июля 2010

Я исправил test_extensions , чтобы также сделать это.

0 голосов
/ 16 октября 2015

Если вы используете django-nose , то вы можете добавить приведенный ниже фрагмент в ваш файл settings.py, чтобы отключить вывод журнала при запуске ./manage.py test

NOSE_ARGS = [
    '--nologcapture'
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...