Pytest 如何控制测试流程

Pytest 如何控制测试流程,pytest,Pytest,我有一个测试活动,其中包含1,2,3,4,5,6的测试,我想在一次测试运行中控制执行流。例如,在运行测试1、2、3之后,我需要在执行4、5、6之前执行一些测试设置。pytest中是否有支持此功能的功能或插件。另外,我不想将测试分组到多个测试运行中。pytest按照测试在模块中出现的顺序运行测试。因此,如果在模块中的4、5和6之前定义了测试1、2和3,那么它们将首先执行。但是,如果它们不是,或者它们在不同的模块中,或者您只是想确保某些顺序,您应该检查此插件: 请注意,如果您不想使用此插件(如hoo

我有一个测试活动,其中包含1,2,3,4,5,6的测试,我想在一次测试运行中控制执行流。例如,在运行测试1、2、3之后,我需要在执行4、5、6之前执行一些测试设置。pytest中是否有支持此功能的功能或插件。另外,我不想将测试分组到多个测试运行中。

pytest
按照测试在模块中出现的顺序运行测试。因此,如果在模块中的4、5和6之前定义了测试1、2和3,那么它们将首先执行。但是,如果它们不是,或者它们在不同的模块中,或者您只是想确保某些顺序,您应该检查此插件:

请注意,如果您不想使用此插件(如hook),还可以使用其他替代方法,它可以让您重新安排已收集测试的顺序

对于要在执行测试4、5和6之前进行一些测试设置的部分,可以使用pytest。对于您的情况,您可以定义一个会话范围的装置来执行设置工作,然后将该装置包括在测试的参数列表中。如下所示:

导入pytest
@pytest.fixture(scope=“session”)
def测试_设置():
打印(“设置完成”)
def测试_1():
断言正确
def测试_2():
断言正确
def测试单元3(测试单元设置):
断言正确
def测试单元4(测试单元设置):
断言正确

在这里,
test_1
test_2
将首先执行。然后调用
test\u setup
,然后调用
test\u 3
test\u 4

pytest
按照测试在模块中出现的顺序运行测试。因此,如果在模块中的4、5和6之前定义了测试1、2和3,那么它们将首先执行。但是,如果它们不是,或者它们在不同的模块中,或者您只是想确保某些顺序,您应该检查此插件:

请注意,如果您不想使用此插件(如hook),还可以使用其他替代方法,它可以让您重新安排已收集测试的顺序

对于要在执行测试4、5和6之前进行一些测试设置的部分,可以使用pytest。对于您的情况,您可以定义一个会话范围的装置来执行设置工作,然后将该装置包括在测试的参数列表中。如下所示:

导入pytest
@pytest.fixture(scope=“session”)
def测试_设置():
打印(“设置完成”)
def测试_1():
断言正确
def测试_2():
断言正确
def测试单元3(测试单元设置):
断言正确
def测试单元4(测试单元设置):
断言正确
在这里,
test_1
test_2
将首先执行。然后调用
test\u setup
,然后调用
test\u 3
test\u 4