從命令列通過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 ...