我是 py.test 的新手。到目前为止,我喜欢我所看到的并希望将其集成到我们的 CI 流程中。
目前,我们在测试中使用了一种不同类型的参数化方案,我将简要解释一下:
- 我们不是对每个测试进行参数化,而是对每个类进行参数化
- say
params
是一组元组,每个元组代表不同的参数集。 - 我们为每个这样的 tupla 创建一个类的不同
TestCaseWithParameters
实例unittest.TestCase
。像这样的东西:
for test_parameters in params: parameterized_test_suite.addTest(ParametrizedTestCase.parametrize(TestCaseWithParameters,param=test_parameters))
- 这些类中的每一个
self.params
都使用这些不同的参数注入并运行所有测试功能。 - 这意味着如果我们有数百个元组
params
并且TestSomethingWithParameters
有几十个测试,那么总共会有很多测试。
我的问题:我将如何将其翻译为 py.test?
我已经阅读了这篇关于pytest_generate_tests
钩子的文章,但它似乎为每个测试函数注入了依赖项,我需要每个 TestCase ......
最简单的方法是告诉 py.test 运行parameterized_tes_suite
我已经创建的特定内容,但我没有找到这样做的方法......
另一种方法是在 TestCase 类级别进行类似的依赖注入,但我也没有找到这样做的方法。