pytest之解決用例依賴

2022-09-18 21:51:12 字數 2149 閱讀 7507

pytest中用例之間的順序預設是按檔名ascll碼排序,檔案內的用例預設是按照從上往下順序執行。要改變用例的執行順序,可以安裝第三方外掛程式pytest-ordering實現自定義用例順序,由此可以解決用例的依賴問題。命令如下:

pip install pytest-ordering
按數字排序用法如下:

@pytest.mark.order

class testmycode:

@pytest.mark.run(order=1)

def test_order_001(self):

assert true

@pytest.mark.run(order=-2)

def test_order_002(self):

assert true

@pytest.mark.run(order=3)

def test_order_003(self):

assert true

在編寫用例時,有時候用例之前會有依賴,而解決用例之間的依賴關係,可以用到pytest-dependency第三方外掛程式,如果依賴的用例失敗,則後續的用例會被標識為跳過。所以需要注意的是被依賴的用例一定要先執行,否則後續的用例會直接跳過。

pip install pytest-dependency
示例:

@pytest.mark.dependency()

def test_login():

print("*****====login*****====")

assert true

@pytest.mark.dependency(depends=["login"], scope="session")

def test_dependency_001():

"""module:作用範圍為當前檔案

class:作用範圍為當前類中

package:作用於當前目錄同級的依賴函式,跨目錄無法找到依賴的函式

session:作用域全域性,可跨目錄呼叫。但被依賴的用例必須先執行,否則用例會執行跳過

"""assert true

在同乙個指令碼內,可以利用fixture函式,解決用例依賴的問題。被依賴的用例,可以把它標註為fixture方法,操作為@pytest.fixture()。若被依賴的方法用的地方比較多,比如登陸操作,那麼可以將 fixture方法,放在conftest指令碼中。

class testmycode:

"""用例依賴"""

@pytest.mark.usefixtures("test_login")

@pytest.mark.parametrize("a", [1, 2, 3])

def test_fixture_005(self, a):

"""fixture函式在測試指令碼檔案中"""

assert a > 1

@pytest.fixture()

def test_login(self):

"""fixture函式在測試指令碼檔案中"""

print("**********====test_login***************")

assert 1 == 1

conftest.py檔案

@pytest.fixture()

def login():

"""fixture函式在conftest指令碼檔案中"""

print("**********====test_login***************")

測試用例:

import pytest

class testmycode:

"""用例依賴"""

@pytest.mark.usefixtures("login")

@pytest.mark.parametrize("a", [1, 2, 3])

def test_fixture_005(self, a):

"""fixture函式在測試指令碼檔案中"""

assert a > 1

pytest 用例依賴

1.建立訂單之前,需要先新增購物車 2.在執行訂單介面用例之前,要保證新增購物車介面用例完成,並且是pass 3.在外掛程式列表中找到,dependency名字,該外掛程式管理測試用例依賴關係 英文好的可以直接看官方文件 1.單獨執行訂單介面 test order 如下 import pytest ...

pytest用例依賴

在實際使用pytest編寫測試用例指令碼時,會需要用到兩個或多個測試用例依賴執行,就比如登入的時候我們需要先註冊,那登入的用例就需要依賴註冊的用例。我們想要登入條件很簡單可直接通過pytest.mark.skip裝飾器完成。但是想要判斷註冊用例是否通過,根據是否通過執行登入的用例就要將兩個用例之間建...

Pytest 執行用例

pytest 不止可以執行自己的用例,也可以執行 unittest 寫的用例。pytest 有很多執行時引數,用於指定執行的用例 執行結果展示 外掛程式引數等。pytest 有兩種執行方式 命令列通過 pytest 命令執行 pytest 引數 引數值 中使用pytest.main 引數1 引數值1...