pytest用例識別規則
pytest會從當前目錄遞歸查找所有的test_.py或_test.py的文件(包含子文件夾),收集滿足以下條件的函數或方法當作測試用例:
- 不在類定義中的以test_開頭的函數或方法
- 在以Test開頭的類中(不能包含init方法),以test_開頭的方法
- pytest也支持unittest模式的用例定義
pytest 運行常用指令項
pytest –collect-only :蒐集當前目錄及下級目錄的測試用例個數
pytest -k “KKK” :利用你的條件表達式來 過濾 測試用例的名字,得到希望運行的測試用例
pytest -m "first_case" :m 是marker的縮寫,執行自己標記的first_case測試用例,標記測試用例在測試用例方法前面加上@pytest.mark.first_case,其中first_case 是裝飾器用於標記的內容;
pytest -x :遇到斷言失敗就停止執行.
pytest –lf : lf 是 last failed 的縮寫,直接過濾出最後一個fail 的測試用例,有利於快速查找失敗的用例
pytest –ff :是 failed first,優先運行失敗的case ,再把之前運行通過的也要運行
pytest --tb=style :失敗輸出信息的顯示方式,style 方式常用如下3種:
- --tb=no: 屏蔽所有的回溯信息,只是顯示哪個文件哪個case 失敗,
- --tb=line :具體到哪個assert
- --tb=short: 具體到哪個參數,列舉出更詳細的失敗信息.
pytest.fixture()
fixture是pytest的閃光點,在pytest中fixture的功能很多,本節主要介紹用fixture的參數化功能。
-
pytest.fixture()中傳入的參數爲list,用例執行時,遍歷list中的值,每傳入一次值,則相當於執行一次用例。