繁体   English   中英

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

[英]py.test change order of test inside the test class

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

例如:

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

在这种情况下,py.test 将运行:带有“test1”、“test2”参数的 test_1 以及带有“test1”、“test2”参数的 test_2。

我想做的是让它按以下顺序运行:test_1 带有参数“test1”,然后 test_2 带有参数“test1”,然后 test_1 带有参数“test2”,然后 test_2 带有参数“test2”。

有没有办法做到这一点?

提前致谢。

如果您根本不使用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"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM