运行 Python 中的参数测试

Running parametric tests in Python

我的参数测试通常如下

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 中编写参数测试,以便某些测试 运行 人员可以处理它?

既然你在用鼻子工作,我会说看看 parameterized which is a continuation from nose-parameterized