我是Python测试和一般测试的新手,正在寻找一种方法来编写一个测试函数并针对元组的不同元素多次运行该函数。
更准确地说,有一个由我都想测试的不同数据库查询组成的元组。所有这些查询的结果共享相同的模式,因此我认为重用测试这些结果的代码是合理的。
据我所知,将参数传递给单元测试被认为是不好的做法,这似乎也是合理的。这让我有点摸不着头脑。为每个查询编写一个函数将很难维护,因为新的查询会不断添加到该元组中。
我还想通过 python manage.py test myapp -v=2 获取元组中每个元素的详细结果(失败或正常),因此将完整的元组放入函数的一次执行中似乎也是一个糟糕的方法。
正如标题所示,我的代码位于 django 环境中。
我很乐意使用 django 测试框架,这样我就可以使用 python manage.py test
执行此测试。
实现此测试的好方法是什么?
最佳答案
这些有时称为参数化测试和 nose-parameterized是一个很棒的Python包,支持它。
它允许您定义单个测试函数并提供参数集合。它将为提供的每个参数动态创建一个命名的可引用测试函数。
<小时/>元组有多大?真的有必要测试元组中的每个查询吗?如果它们共享相同的模式,仅采用查询的子集就足够了吗?
关于Python/Django - 针对列表进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43667232/