1
51
自Django 1.3以来, assertNumQueries 完全适用于此目的。 |
2
39
维尼的回答是正确的,只加了一点。
Django的单元测试框架实际上在运行时将debug设置为false,因此无论您使用的是什么
如果您确定启用调试不会影响您的测试(例如,如果您是专门测试db命中,听起来像您这样),那么解决方案是在单元测试中临时重新启用调试,然后将其设置回:
|
3
4
如果你有
|
4
3
在现代Django(>=1.8)中,它有很好的文档记录(也有1.7的文档记录) here 你有办法 重新设置查询 而不是分配 connection.queries=[] 这确实引发了一个错误,类似的错误适用于django>=1.8:
您还可以考虑在安装/拆卸时重置查询,以确保为每个测试重置查询,而不是在finally子句上执行查询,但这种方法更显式(尽管更详细),或者您可以使用 重新设置查询 在try子句中,计算从0开始的查询所需的次数。 |
5
3
如果您正在使用
|
6
2
如果不想使用testcase(与 assertNumQueries )或者将设置更改为debug=true,您可以使用上下文管理器CaptureQueriesContext(与 断言数查询 使用)。
|
nadermx · Django中的原始sql查询问题 2 年前 |
liansheng · 在Django。如何使用字段长度[重复]排序 6 年前 |
bkramer · 订单重要时成功尝试分组查询 6 年前 |
martin_crd · Django中多个表的筛选和排序结果 6 年前 |
Phil Sheard · 使用大型子查询优化Django查询 6 年前 |
Max Malysh · 如何从Django找到Postgres版本? 7 年前 |