pytest 用例依賴

2021-10-05 15:23:22 字數 2005 閱讀 6048

1. 建立訂單之前,需要先新增購物車

2. 在執行訂單介面用例之前,要保證新增購物車介面用例完成,並且是pass

3. 在外掛程式列表中找到,dependency名字,該外掛程式管理測試用例依賴關係

英文好的可以直接看官方文件:

1. 單獨執行訂單介面(test_order),**如下

import pytest

def test_cart():

print("新增到購物車")

def test_order():

print("建立訂單")

2. 我們的目的是要增加依賴

3. 可以使用安裝的外掛程式dependency來實現,**如下

@pytest.mark.dependency()

def test_cart():

print("新增到購物車")

@pytest.mark.dependency(depends=["test_cart"])

def test_order():

print("建立訂單")

**解釋:

* 只需要在測試用例增加@pytest.mark.dependency() 標識即可,這裡面要注意,假如是order依賴cart,故在order的用例上,需要增加引數depends,depends對應測試用例的名稱,這裡要注意,如果要執行用例必須按pytest的預設執行規則,即用例前要加上test_,而且順序要注意,要先執行test_cart在執行test_order,如果要先執行test_order,檢視依賴時發現test_cart這個用例沒有執行認為結果不通過,所以就不會執行,結果會顯示skip

4. 來,我們執行一下,看下結果

**:只是調換了用例的順序,執行順序:test_order -> test_cart

@pytest.mark.dependency(depends=["cart"],scope="module")

def test_order():

print("建立訂單")

@pytest.mark.dependency(name='cart')

def test_cart():

print("新增到購物車")

結果,會發現test_order是skipped,忽略掉了未執行:

print("新增到購物車")

assert false

@pytest.mark.dependency(depends=["cart"])

def test_order():

print("建立訂單")

結果,乙個失敗,乙個忽略未執行

pytest用例依賴

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

pytest之解決用例依賴

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

Pytest 執行用例

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