python - 如何使用nose_parameterized参数化setUp方法

标签 python nose parametrized-testing

我在我的项目中使用nose_parametrized包,并在类级别使用@parametrized.expand装饰器。但我不知道如何为我的 setUp 类使用参数。代码如下:

from nose_parameterized import parameterized    

@parameterized.expand(['par1', 'par2'])
class MyTestClass(TestCase):

    def setUp(self, par):
        super(TestCase, self).setUp()

        if par == "par1":
            do_something()
        elif par == "par2":
            do_something_else()

        do_more(par)

这种方法会导致 TypeError: setUp() 恰好需要 2 个参数(给定 1 个)

正确的做法是什么?

最佳答案

使用parameterized_class:

from parameterized import parameterized_class

@parameterized_class(('par', ), ['par1', 'par2'])
class MyTestClass(TestCase):
    def setUp(self):
        super(TestCase, self).setUp()

        if self.par == "par1":
            do_something()
        elif self.par == "par2":
            do_something_else()

        do_more(self.par)

关于python - 如何使用nose_parameterized参数化setUp方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57953364/

相关文章:

python - 即使测试通过,也让 Nose 测试运行器显示日志记录

python - 在 Nose 中伪造 time.time() 的时间戳

python - 如何从 pytest 固定装置正确返回列表以用于参数化?

python - 如何将函数作为 pytest 参数化装置传递?

python - 如何将类 "filter"的实例直接转换为 str

Python:将 MongoDB 迁移到 DynamoDB - float 错误

python - 如何在Python OpenCV中缩小图像的物理尺寸

python - DEAP 框架 - 使用每个基因统计数据的 mutGaussian

python - 使用 `abort(404)` 时引发 TypeError

python-3.x - 如何在当前测试中使用 fixture 转换后的数据进行参数化?