鼻子用装饰器生成动态测试

时间:2016-10-04 19:22:56

标签: python python-2.7 nose

我有动态的测试量,所以我想用于循环 我会尝试类似的事情:

from nose.tools import istest, nottest
from nose.tools import eq_
import nose
nose.run()
@istest
def test_1():
    for i in range(100):
        @istest
        def test_1_1():
            eq_(randint(1,1),1)



---------------------
Ran 1 test in 0.001s

OK

但鼻子只显示一次测试。如何将其改进为100次测试? 提前谢谢。

1 个答案:

答案 0 :(得分:2)

对于鼻子中的数据驱动测试,请查看nose_parameterized

使用示例:

from nose_parameterized import parameterized

@parameterized.expand([(1, 1, 2), (2, 2, 4)])
def test_add(self, a, b, sum):
    self.assertEqual(sum, a + b)

这里,跑步者将生成两个测试。它会测试1+1==22+2==4。装饰器还与其他测试运行器兼容,例如unittest