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:
相關文章
相關標籤/搜索