使用@ 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。
有没有办法做到这一点?
提前致谢。
答案 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"