pytest如何循环运行测试用例而不是重复运行

img


我想要循环3次运行,效果是test_PurchaseInquiry_Detail,test_QuotationsHeader_Add,test_PurchaseInquiry_Detail,test_QuotationsHeader_Add,test_PurchaseInquiry_Detail,test_QuotationsHeader_Add;有知道怎么做吗

【以下回答由 GPT 生成】

我可以为您提供一个解决方案。我们可以使用pytest中的参数化(parametrize)功能来解决这个问题。通过参数化,我们可以为测试用例提供不同的参数,从而实现循环执行。

首先,请确保您已经在代码中导入了pytest和pytest的parametrize功能:

import pytest

然后,您需要使用pytest的parametrize装饰器来标记您的测试函数,并为其提供参数。在这种情况下,我们可以使用一个列表来指定要循环运行的测试用例:

@pytest.mark.parametrize("test_case", ["test_PurchaseInquiry_Detail", "test_QuotationsHeader_Add"])
def test_loop_tests(test_case):
    for _ in range(3):
        # 执行测试用例
        pytest.main(["-k", test_case])

在这个例子中,我们使用parametrize装饰器来标记test_loop_tests函数,并提供一个名为test_case的参数。test_case参数是一个包含要循环运行的测试用例名称的列表。

test_loop_tests函数中,我们使用一个for循环来循环3次,然后使用pytest的main函数来运行指定的测试用例。主要的参数是-k,它用于指定要运行的测试用例。在这里,我们将test_case作为参数传递给-k参数。

最后,您可以在终端中运行pytest来执行此测试循环:

pytest <your_test_file>.py

请注意,您需要将<your_test_file>替换为包含上述测试函数的测试文件的名称。

希望这个解决方案对您有帮助。如果您有任何其他问题,请随时提问。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^