python - assertNumQueries 问题

标签 python django unit-testing assert django-tests

我正在尝试测试我的 Django 应用程序中 API 执行的数据库查询的数量。所以,我有一个类似于以下的测试用例:

class DatabaseQueriesTestCase(TestCase):
    scan_uri = "something"

    def test_API_1(self):
        payload = {
                    'id': 12,
                    'name': "ABCD"
                  }
        self.assertNumQueries(13, self.client.post, self.scan_uri, data=payload)

在多次运行测试时,一些通过而另一些失败。一些失败,表示运行了另一个查询。为什么会这样?这是 assertNumQueries 的问题吗??

注意:在我的应用程序中使用 Redis 缓存..

最佳答案

我在 setUp()清除了我的缓存:

def setUp(self):
    # cleared cache
    # in my case: self.redis_conn.flushdb()

这解决了问题。您可以找到有关与 assertNumQueries here 相关的此类问题的有用讨论。

非常感谢@Daniel Hepper 帮助我!!!

关于python - assertNumQueries 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40147274/

相关文章:

python - 根据字符在数据框中创建新记录

python - 对于以下用例,我应该使用 Redis 还是 Neo4J?

python - 如何在Django中引用不同应用程序中的不同模板?

python - 我正在寻找一个高效的 django 查询集来阻止这么多人访问我的数据库

c - 如何使用 Appveyor 运行自定义 C 单元测试?

java - 使用 maven 运行单个测试方法

c++ - 如何检查 Boost 测试框架中 double 值的前 15 个相关数字是否相同?

python - 删除现有的类变量 yield AttributeError

python - 从 win32service 报告错误

python - 使用 python 进行二阶数值微分