【问题标题】:Python/Django - Testing against a listPython/Django - 针对列表进行测试
【发布时间】:2017-04-27 20:20:38
【问题描述】:

我是 python 测试和一般测试的新手,我正在寻找一种方法来编写一个测试函数并针对元组的不同元素多次运行该函数。

更准确地说,有一个由我都想测试的不同数据库查询组成的元组。所有这些查询的结果共享相同的模式,所以我想重用测试这些结果的代码是合理的。

据我所知,将参数传递给似乎也很合理的单元测试被认为是不好的做法。这让我有点不知所措。为每个查询编写一个函数将很难维护,因为新的查询会不断添加到此元组中
我还想通过python manage.py test myapp -v=2 获得元组的每个元素的详细结果(FAIL 或 ok),因此将完整的元组放在一个函数的一次执行中似乎也是一种不好的方法。

如标题所示,我的代码位于 django 环境中。
我很乐意使用 django 测试框架,因此我可以使用 python manage.py test 执行此测试。

实施此测试的好方法是什么?

【问题讨论】:

    标签: python django python-3.x unit-testing


    【解决方案1】:

    这些有时被称为参数化测试,nose-parameterized 是一个很棒的支持它的 python 包。

    它允许您定义单个测试函数并提供参数集合。它将为提供的每个参数动态创建一个命名的可引用测试函数。


    元组有多大?真的有必要测试元组中的每一个查询吗?如果它们共享相同的模式,只获取查询的子集就足够了吗?

    【讨论】:

    • 这里应该真的包含示例代码,否则这感觉就像一个仅链接的答案
    • 链接答案很好。我宁愿寻找框架、库等,因为纯 python/django 似乎不支持我想做的事情。感谢您的链接,将尽快查看!
    • 是的,我绝对想测试每一个查询(现在大约 150 个,很快会添加更多)。由于很难保持所有这些 db 相关代码的质量,我想对其进行广泛的测试
    • 很棒的包装。正是我想要它做的。即使没有明确支持 3.6,也可以使用 3.6。
    猜你喜欢
    • 2012-07-28
    • 1970-01-01
    • 1970-01-01
    • 2017-12-30
    • 2011-03-26
    • 1970-01-01
    • 2013-06-14
    • 2012-12-07
    • 2011-01-29
    相关资源
    最近更新 更多