pytest是⼀個⾮常成熟的全功能的Python測試框架,主要特點有以下⼏點:
- 能夠⽀持簡單的單元測試和複雜的功能測試,還可以⽤來做selenium/appnium 等⾃動化測試、接口⾃動化測試(pytest+requests);
- pytest具有很多第三⽅插件,並且可以⾃定義擴展,⽐較好⽤的如pytestselenium(集成selenium)、pytest-html(完美html測試報告⽣成)、pytestrerunfailures(失敗case重複執⾏)、pytest-xdist(多CPU分發)等;
- 測試⽤例的skip和xfail處理;
- 可以很好的和jenkins集成;
實用注意:
- pytest只能識別以test_開頭和_test結尾的.py⽂件,識別以test.開頭的所 有⽅法、類
- 測試類必須以Test開頭,並且不能有 init ⽅法
- 測試⽅法必須以test_開頭
- 如果當前⽂件夾下有多個⽂件,test_sample2.py , test_sample3.py 想 要運⾏所有的測試⽤例,只需要運⾏命令:pytest就可以了。如果運 ⾏單個⽂件,則運⾏命令: pytest test_sample2.py •
- 斷⾔使⽤基本的assert即可。
命令參數
命令 | 解釋 |
---|---|
pstest --version | 顯示版本信息 |
pytest --fixtures | 顯示可用的內置函數 |
pytest -h | --help | 顯示參數和配置信息 |
pytest --lf | 運行上一次失敗案例 |
pytest -x | --exitfirst | 第一次失敗後停止 |
pytest --maxfail=2 | 第二(n)次次失敗後停止 |
pytest test_mod.py | 運行單個文件中的用例 |
pytest testing/ | 運行文件夾下的用例 |
pytest test_mod.py::TestClass::test_methos | 運行模塊下類特定的方法 |
pytest -m slow | marker運行測試用例(運行所有被裝飾器標記@pytest.mark.slow的用例) |
pytest --prargs pkg.testing | 從包中運行測試用例(要導入 import pkg.testing) |
pytest -ra | 運行測試用例(顯示測試總的結果信息,輸出信息的最後) |
pytest -rp | 運行測試用例(顯示測試 通過的結果信息,輸出信息的最後) |
pytest -rE | 運行測試用例(顯示測試錯誤的結果信息,輸出信息的最後) |
pytest -rs | 運行測試用例(顯示測試跳過的結果信息,輸出信息的最後),也可以結合使用 -ref 顯示跳過的失敗的 |
pytest -v pytest1.py | -v 用於顯示每個測試函數的執行結果 |
pytest -q pytest1.py | -q 只顯示整體測試結果 |
pytest -s pytest1.py | -s 用於顯示測試函數中print()函數輸出 |
pytest --durations=10 | 獲得最慢的10個測試持續時間表 |
pytest --junitxml=path | s生成一個結果集xml文件,可用於Jenkins持續集成 |
pytest --pastebin=failed | 爲每個失敗的用例創建一個url |