pytest用例依賴

2022-06-09 04:39:07 字數 3086 閱讀 1066

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

將兩個或多個用例之間建立依賴關係,我們需要用到乙個pytest的第三方外掛程式:pytest-dependency

官網:實際使用

1

import

pytest23

4def

test_01():

5print("

使用者註冊")

6assert 1 ==078

9def

test_02():

10print("

使用者登入")

1112

13if

__name__ == '

__main__':

14 pytest.main(["

test_demo.py

"])

這樣肯定會在執行完第乙個用例後報錯,那如果第二個用例需要依賴註冊,那肯定登入的用例以及後面的用例全部執行失敗;

新增依賴關係

1

import

pytest23

4 @pytest.mark.dependency() #

被依賴的用例同樣需要裝飾

5def

test_01():

6print("

使用者註冊")

7assert 1 ==089

10 @pytest.mark.depends(on=["

test_01

"]) #

depends 列表中接收需要依賴的用例名稱,如果依賴多個,則直接將用例名稱寫入到列表即可

11def

test_02():

12print("

使用者登入")

1314

15if

__name__ == '

__main__':

16 pytest.main(["

test_demo.py

"])

*************************== short test summary info *************************==failed test_demo.py::test_01 - assert 1 ==0

***************=== 1 failed, 1 skipped in 0.23s ***************====

執行結果為乙個失敗,乙個跳過;

第二種用法通過給用例設立別名盡心依賴;

1

import

pytest23

4 @pytest.mark.depends(name='

test

') #

name 設定別名

5def

test_01():

6print("

使用者註冊")

7assert 1 ==089

10 @pytest.mark.depends(on=["

test

"]) #

depends 填寫依賴的別名

11def

test_02():

12print("

使用者登入")

1314

15if

__name__ == '

__main__':

16 pytest.main(["

test_demo.py

"])

*************************== short test summary info *************************==failed test_demo.py::test_01 - assert 1 ==0

***************=== 1 failed, 1 skipped in 0.23s ******************************=

執行結果與上面一樣

第三種用法,通過pytest對方法的完全限定名進行依賴,怎麼知道完全限定名是什麼?

test_demo.py::test_01failed                                             [ 50%]      # 加粗部分就是pytest對用例的完全限定名test_demo.py::test_02skipped (test_02 depends on test)                  [100%]

import

pytest

deftest_01():

print("

使用者註冊")

assert 1 ==0

@pytest.mark.depends(on=["

test_demo.py::test_01

"])

deftest_02():

print("

使用者登入")

if__name__ == '

__main__':

pytest.main([

"test_demo.py

"])

*************************== short test summary info *************************==failed test_demo.py::test_01 - assert 1 ==0

***************=== 1 failed, 1 skipped in 0.23s ******************************=

外掛程式依賴的應用很靈活,乙個用例可以依賴其他用例也可以被其他用例依賴。很多使用的方法可以在操作中進行嘗試。

pytest 用例依賴

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

pytest之解決用例依賴

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

Pytest 執行用例

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