首页 > 解决方案 > 如何使用不同的参数多次运行 TestClass?

问题描述

我正在尝试解决我在 PyTest 中遇到的一个问题。我正在尝试创建 PyTest,它将使用不同的参数多次运行一个 TestClass。我知道我可以使用@pytest.mark.parametrize,但是测试顺序有问题。

当我@pytest.mark.parametrize这样使用时,测试的顺序是:

我正在寻找一些将按此顺序运行测试的解决方案:

感谢您的任何建议!

标签: pythonpytest

解决方案


原则上,提供给参数化的测试数据的顺序应该无关紧要。因此,如果您此时正是您所需要的:即执行的顺序很重要,那么您的测试应该明确说明这一点。例如

@pytest.mark.parametrize("data_1, data_2", [
   (...),
   (...)
])
def my_test(data_1, data_2):
    """
    Explain what test is about.
    """
    # Step 1 - Do something first with data_1:
    ...
    # Step 2 - Do something next with data_2:
    ...

推荐阅读