pytest控制用例执行顺序

  1. 安装pytest_ordering,经过装饰器@pytest.mark.run(order=1)来进行控制,数字越小,越前执行,python

  2. 安装pytest-dependency 在对应的方法A上添加@pytest.mark.dependency()对所依赖的方法进行标记设置为被依赖方法,在依赖方法使用@pytest.mark.dependency(depends=["被依赖方法名"])引用依赖 可添加name=参数session

  3.  @pytest.fixture装饰,包括session、module、class、functionapp


@pytest.mark.dependency()依赖方法示例:ide

1.在同一个类中,再被依赖的方法上进行标记 如,被依赖方法 @pytest.mark.dependency(depends=["类名::方法名"])spa

    @pytest.mark.dependency()                      # 被依赖方法
    @pytest.mark.flaky(reruns=2, reruns_delay=4)  # 失败重跑该方法
    def test_login(self):
        # 打开网址
        Primary.driver.get(Config.URL)
        # 登陆操做
        bool_success = LoginSystem(Primary.driver).login_system()
        if bool_success is False:
            pytest.fail("登陆失败")

    @pytest.mark.dependency(depends=["Test_Login::test_login"])  # 依赖该方法
    def test_join_apply(self):
        # 进入指定应用
        Change_To_BusinessAndProject(Primary.driver).change_to_project_plug(project_name=Config.PROJECT,
                                                                            plug_name=Config.YANGCHEN_PLUGNAME,
                                                                            project_id=Config.PROJECTID)


2. 在不一样模块或者类中调用,如被依赖的方法在模块A,类A中,依赖方法在B模块,类B中,能够在B类上depends=["test/模块名A.py::类名A::方法名test_A"]进行依赖,若是依赖方法A失败,B类中的方法都不会运行ci

 在B类中的方法进行依赖操做一致get


@pytest.mark.dependency(
    depends=["test/test_Login.py::Test_Login::test_login"],
    scope='session'
)
@pytest.mark.run(order=2)
class B:
相关文章
相关标签/搜索