Моя проблема в том, что, поскольку я добавил ведение журнала в свое приложение django, когда я запускаю свои модульные тесты, все мои сообщения журнала отображаются в консоли. Я использую нос в качестве тестового бегуна. Его обычное поведение заключалось в том, чтобы захватить sys.stdout
, показать вывод консоли только в случае неудачного теста и показать его в конце.
Раньше у меня был этот вывод при запуске моих тестов:
........
Ran 8 tests in 0.876s
OK
Destroying test database for alias 'default'...
Это вывод, который я получаю сейчас, когда запускаю python manage.py test accounts
:
...log message
.log message
....log message
Ran 8 tests in 1.034s
OK
Destroying test database for alias 'default'...
Это начало происходить, когда я добавил в свой код ведение журнала с использованием стандартной библиотеки ведения журнала Python. Я поменял свои settings.py
и views.py
. Ниже вы можете проверить, что именно я изменил.
Может ли кто-нибудь помочь мне сохранить ведение журнала, но избежать раздражающего дополнительного вывода при запуске тестов?
Добавлено в settings.py
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'class': 'logging.StreamHandler',
'level': 'INFO',
'stream': sys.stdout,
},
},
'loggers': {
'': {
'handlers': ['console'],
'level': 'INFO',
'propagate': False,
},
},
}
Добавлено в мои представления
import logging
logger = logging.getLogger(__name__)
logger.info("log message")
Команда, которую django использует для запуска моих тестов
nosetests accounts/ --with-coverage --cover-package=accounts,keys, utils --cover-html --cover-erase --logging-filter='selenium' --verbosity=1
Конфигурация носового тестового бегуна в settings.py
(то же самое было, когда он работал)
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
NOSE_ARGS = [
'--with-coverage',
'--cover-package=accounts,keys, utils',
'--cover-html',
'--cover-erase',
"--logging-filter='selenium'",
]
--logging-filter
вам нужно включить журналы селена? - person Stefan Collier   schedule 14.06.2018