Как отключить ведение журнала при запуске модульных тестов в Python Django? - PullRequest
149 голосов
/ 10 марта 2011

Я использую простой тестовый модуль на основе модульных тестов для тестирования моего приложения Django.

Мое приложение само настроено на использование базового регистратора в settings.py с помощью:

logging.basicConfig(level=logging.DEBUG)

И в моем коде приложения, используя:

logger = logging.getLogger(__name__)
logger.setLevel(getattr(settings, 'LOG_LEVEL', logging.DEBUG))

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

Ответы [ 11 ]

0 голосов
/ 24 декабря 2016

В моем случае у меня есть файл настроек settings/test.py, созданный специально для тестирования, вот как это выглядит:

from .base import *

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': 'test_db'
    }
}

PASSWORD_HASHERS = (
    'django.contrib.auth.hashers.MD5PasswordHasher',
)

LOGGING = {}

Я поместил переменную окружения DJANGO_SETTINGS_MODULE=settings.test в /etc/environment.

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