Django 如何在单元测试的时候也打印 SQL 语句

Django 如何在单元测试的时候也打印 SQL 语句

在非单元测试的时候可以通过如下配置,让 Django 输出 ORM 操作对应的 SQL 语句。

LOGGING = {

'version': 1,

'disable_existing_loggers': False,

'handlers': {

'console':{

'level':'DEBUG',

'class':'logging.StreamHandler',

},

},

'loggers': {

'django.db.backends': {

'handlers': ['console'],

'propagate': True,

'level':'DEBUG',

},

}

}

但是上述的配置到了单元测试的时候就不打印 SQL 了,请问应该如何做才能的单元测试中也输出 ORM 操作对应的 SQL 语句呢?


回答:

我自己解决了,写了一篇文章来解决这个问题

https://juejin.cn/post/697767...


回答:

from django.db import connection
print(connection.queries[-1])

单元测试脚本加入
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")
django.setup()
应该也可以吧

以上是 Django 如何在单元测试的时候也打印 SQL 语句 的全部内容, 来源链接: utcz.com/p/937997.html

回到顶部