Pytest呼叫和使用

2021-09-23 23:43:56 字數 1949 閱讀 6340

從命令列通過python直譯器呼叫測試

python -m pytest […]

等同於直接呼叫命令列指令碼pytest […] ,除了通過python呼叫也將當前目錄新增到sys.path

退出**

退出**0:收集並成功通過所有測試

退出**1:手機並執行測試但是有一些測試失敗了

退出**2:使用者中斷了測試執行

退出**3:執行測試時發生內部錯誤

退出**4:pytest命令列使用錯誤

退出**5:沒有收集任何測試

獲取有關版本,選項名稱,環境變數的幫助

pytest --version #顯示從**匯入pytest

pytest --fixtures #顯示可用的內建函式引數

pytest -h #顯示命令列和配置檔案的幫助

在第一次或n次失敗後停止

pytest -x #在第一次失敗後退出

pytest --maxfail=2 #在第二次失敗後退出

指定測試/選擇測試

按節點id執行測試

每個收集的測試都分配了乙個唯一的nodeid,包含模組檔名,後跟說明符,如類名,函式名和引數化引數,用::字元分隔

通過標記表示式執行測試

pytest -m slow

將執行@pytest.mark.slow裝飾器裝飾的所有測試(@pytest.mark.為標記)

從包中執行測試

pytest --pyargs pkg.testing

將匯入pkg.testing包並使用其檔案系統位置來查詢和執行測試

修改python回溯列印

詳細的總結匯報

版本2.9中的新功能

在失敗時丟棄到pdb(python偵錯程式)

python附帶乙個名為pdb的內建python偵錯程式,pytest允許使用者通過命令列選項進入pdb提示符

在測試開始時刪除pdb

python允許使用者通過命令列選項在每次測試開始時立即進入pdb提示符

pytest --trace

這將在每次測試開始時呼叫python偵錯程式

設定斷點

要在**中設定斷點,請在**中使用本機python呼叫,pytest會自動禁用該測試的輸出捕獲:import pdb;pdb.set_trece()

使用內建斷點功能

python3.7引入了內建breakpoint()函式,pytest支援適用breakpoint()以下行為

分析測試執行持續時間

pytest --durations=10

獲得最慢的10個測試持續時間的列表

預設情況下,除非執行-vv,否則pytest不會顯示太小的測試持續時間(<0.01s)

建立juint xml格式檔案

要建立可由jenkins或其他continuous整合伺服器讀取的結果檔案,可使用此呼叫

pytest -- junitxml=path

(未完待續)

建立結果日誌格式檔案

不推薦使用,4.0版本會刪除

pytest --resultlog=path

禁用外掛程式

要在呼叫時禁用載入特定外掛程式,請將該-p選項與字首一起使用no:

pytest -p no:doctest #禁用載入外掛程式doctest,負責從文字檔案執行doctest測試,呼叫pytest

從python**中呼叫pytest

2.0版本的新功能

命令:pytest.main() 注意

呼叫pytest.main()將導致匯入測試及其匯入的任何模組

由於python匯入系統的快取機制,pytest.main()從同一程序進行後續呼叫不會反應呼叫之間對這些檔案的更改

因此pytest.main()不建議從統一程序進行多次呼叫(例如,為了重新執行測試)

pytest使用入門

pytest是第三方開發的乙個python測試模組,可以輕鬆地編寫小型測試,而且可以擴充套件以支援應用程式和庫的複雜功能測試,幫助我們編寫更好的程式。先在命令列中執行pytest的安裝命令 pip install u pytest安裝完成後,檢查是否安裝了正確的版本 pytest version 我...

pytest安裝使用

安裝pytest pip install u pytest 安裝pytest pytest version 檢視版本 在pytest框架中,有如下約束 所有的單測檔名都需要滿足test py格式或 test.py格式。在單測檔案中,可以包含test 開頭的函式,也可以包含test開頭的類。在單測類中...

Pytest使用記錄

參考鏈結 pytest是乙個易用 強大 靈活的功能測試框架,並且相容unittest和nose的測試用例。pip install pytest假設我的專案結構如下圖所示,在專案目錄下專門建立了乙個test資料夾,裡面存放的都是與測試相關的檔案。my project src main.py test ...