py.test在测试类中更改测试顺序

时间:2015-06-29 08:19:44

标签: python unit-testing automation pytest

使用@ pytest.mark.parametrize fixture时,我想更改测试类中测试执行的顺序。

例如:

@pytest.mark.parametrize("param", ['test1', 'test2'])
class TestForTesting:
    def test_1(self, param):
        print param
    def test_2(self, param):
        print param

在这种护理中,py.test将运行: test_1与' test1',' test2'参数和之后的test_2与' test1',' test2'参数。

我想要做的是让它按以下顺序运行: test_1带参数' test1'然后使用参数&test; test1'然后在test_1之后使用参数' test2'然后用参数' test2'进行test_2。

有没有办法做到这一点?

提前致谢。

1 个答案:

答案 0 :(得分:1)

如果您完全不使用parametrize而是使用“旧的”方式,那么在这种情况下您可以获得所需的订单:

class BaseTest:
    def test_1(self):
        print self.param
    def test_2(self):
        print self.param

class TestX(BaseTest):
    param = "A"

class TestY(BaseTest):
    param = "B"