pytest 参数化的时候想修改执行顺序

问题

同一个类中函数只有执行完上一个函数才会执行下一个函数

报错信息

如何实现执行顺序变成:test_3[1] 、test_4[1]、test_3[2]、test_4[2]

环境

常见的是这几个方法

  1. 重新排序参数组合: 直接在 @pytest.mark.parametrize 装饰器中改变参数组合的顺序。这是最简单的方法,但它要求您手动确定和定义期望的执行顺序。
  2. 使用 Pytest-Ordering 插件: Pytest-Ordering 是一个 Pytest 插件,它允许您控制测试的执行顺序。使用该插件,您可以通过添加特定的装饰器(如 @pytest.mark.run(order=1))来指定测试用例的执行顺序。
  3. 自定义 Pytest 收集顺序: Pytest 允许您自定义测试收集的行为。您可以通过重写 Pytest 的钩子方法(如 pytest_collection_modifyitems)来调整测试用例的顺序。这种方法比较复杂,需要一定的 Pytest 内部机制知识。
  4. 编写一个自定义插件或钩子: 如果以上方法都不符合您的需求,您可以编写一个自定义的 Pytest 插件或钩子来实现更复杂的排序

你可以使用3和4的方法。

不过我觉得你可能分成2个类,分别给一个数据也许就可以搞定了。