テスト中にSQLクエリをログに記録するには、次の2つが必要です。
django.db.backends ロガーが有効で、
@override_settings(DEBUG=True) デコレータ。
テストランナーは、DJANGO_SETTINGS_MODULEで設定した内容を無視して、デフォルトでDEBUG = Falseを設定します。
最小設定:
# https:
LOGGING = {
'version': 1,
'handlers': {
'console': {
'class': 'logging.StreamHandler',
},
},
'loggers': {
'django.db.backends': {
'level': 'DEBUG',
},
},
'root': {
'handlers': ['console'],
}
}
テストケースの例:
from django.contrib.auth.models import User
from django.test import TestCase, override_settings
class UserTests(TestCase):
@override_settings(DEBUG=True)
def test_create_user(self):
User.objects.create()