在Python中运行参数测试

时间:2018-01-29 17:44:17

标签: python unit-testing python-unittest nose

我通常按照以下方式进行参数测试

class ShouldCheckSomeCondition(unittest.TestCase):
  def __init__(self, parameters...):
    ...

  def runTest():
    # given
    ...

  cases = [(p1, ...), (p2, ...), ...]

然后在文件底部构建它们并创建一个main来运行它们:

def suite():
  test_suite = unittest.TestSuite()
  test_suite.add_tests([ShouldCheckSomeCondition(*params) for params in ShouldCheckSomeCondition.cases])
  return test_suite

if __name__ == '__main__':
    unittest.TextTestRunner().run(suite())

这很好,所有我可以运行一个测试文件就好了。但是,我不能鼻子支持这个。它的发现试图构建每个案例并失败。 'main'被忽略了。有没有人有一个很好的方法来运行以这种方式编写的许多测试文件? 或者,有没有其他方法可以很好地在python中编写参数测试,以便某些测试运行器可以处理它?<​​/ p>

1 个答案:

答案 0 :(得分:0)

因为您正在使用鼻子,所以请查看parameterized,这是nose-parameterized

的延续