Форматирование результатов тестирования Django
Я хотел бы отформатировать вывод результатов тестирования в моем приложении Django, потому что у меня много тестов, и на данный момент вывода так много, что он нечитабелен.
Я прочитал документы Django по логированию и понимаю, что мне нужно будет настроить LOGGING dict в моих настройках и использовать логгеры, обработчики и форматоры, наряду с родной logging lib в Python, делающей большую часть тяжелой работы.
Проблема в том, что я не знаю, с чего начать. Вот чего я хотел бы добиться в плане вывода:
TOTAL tests run: 123
Failed: 4
Skipped: 5
Passed: 114
APP2 tests run: 34
Failed: 0
Skipped: 1
Passed: 114
APP3 tests run: 67
Failed: 5
Skipped: 0
Passed: 62
Согласно документации Django логирование достаточно настраиваемо с помощью чего-то вроде этого (взято из официальных docs, ближе к низу страницы):
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '{levelname} {asctime} {module} {process:d} {thread:d} {message}',
'style': '{',
},
'simple': {
'format': '{levelname} {message}',
'style': '{',
},
},
'filters': {
'special': {
'()': 'project.logging.SpecialFilter',
'foo': 'bar',
},
'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue',
},
},
'handlers': {
'console': {
'level': 'INFO',
'filters': ['require_debug_true'],
'class': 'logging.StreamHandler',
'formatter': 'simple'
},
'mail_admins': {
'level': 'ERROR',
'class': 'django.utils.log.AdminEmailHandler',
'filters': ['special']
}
},
}
Итак, моя проблема состоит из двух частей:
- How to group app-level tests' output data for displaying
- How to display it neatly in a way that would be scalable (new apps' test data would be displaying automatically without hardcoding all apps' names, etc.)
Возможно ли то, что я задумал, или я смотрю в пропасть, которая принесет мне больше головной боли, чем того стоит?