Python pytest 参数化的问题,求各位大佬支支招。

SpuerHook · 2022年10月12日 · 最后由 迪迦奥特曼 回复于 2023年01月17日 · 5299 次阅读

pytest 参数化一般都是对每个函数进行参数化。
即使在测试类上参数化 也是这个测试类下所有函数 分别执行。

@user1ize("times", data)
class Test(object):

    def test_001(self, times):
        print(times)

    def test_002(self, times):
        print(1123123)

    def test_003(self, times):
        print(333333333)

结果的执行顺序:
test_test.py::Test::test_001[1]
test_test.py::Test::test_001[2]
test_test.py::Test::test_001[3]
test_test.py::Test::test_001[5]
test_test.py::Test::test_002[1]
test_test.py::Test::test_002[2]
test_test.py::Test::test_002[3]
test_test.py::Test::test_002[5]
test_test.py::Test::test_003[1]
test_test.py::Test::test_003[2]
test_test.py::Test::test_003[3]
test_test.py::Test::test_003[5]

有没有什么办法让类里的函数按这个顺序执行
test_test.py::Test::test_001[1]
test_test.py::Test::test_002[1]
test_test.py::Test::test_003[1]
test_test.py::Test::test_001[2]
test_test.py::Test::test_002[2]
test_test.py::Test::test_003[2]
test_test.py::Test::test_001[3]
test_test.py::Test::test_002[3]
test_test.py::Test::test_003[3]
test_test.py::Test::test_001[5]
test_test.py::Test::test_002[5]
test_test.py::Test::test_003[5]

共收到 5 条回复 时间 点赞

百度关键词:pytest 修改测试用例执行顺序。 pytest 里面有个 pytest_collection_modifyitems 可以解决你的问题,你可以去看下。

迷龙 回复

感谢大佬

迷龙 回复

感谢大佬

这个感觉不好整呀,这些用例之间没有关联关系,也没必要非按一定顺序我觉得

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册