參考官網:https://docs.pytest.org/en/latest/getting-started.html,https://docs.pytest.org/en/latest/contents.html
參考上海-悠悠博客:https://www.cnblogs.com/yoyoketang/p/9356693.html
python鄙視鏈:pytest 鄙視 > unittest 鄙視 > robotframework 鄙視 > 記流水賬 鄙視 > "hello world"小白
pytest是一個使構建簡單和可擴展測試變得容易的框架。測試具有表現力和可讀性-不需要樣板代碼。數分鍾內即可開始為您的應用程序或庫進行小型單元測試或復雜的功能測試。
安裝pytest
1.在命令行中運行以下命令:
2.檢查您是否安裝了正確的版本:
創建您的第一個測試,文件名必須是test_開頭;如test_0116.py
def func(x): return x+1 def test_answer(): assert func(3)==5
執行測試。
執行pytest 或 py.test,一定要進入test_0116.py的目錄下執行,不然可能會報(權限)錯誤;
該[100%]指運行所有測試案例的全面進步。完成后,pytest將顯示失敗報告,因為func(3)未返回5。
注意:可以使用該assert語句來驗證測試期望。
運行多個測試;
pytest將在當前目錄及其子目錄中運行所有格式為test_*.py 或 *_test.py的文件。更一般而言,它遵循標准的測試發現規則。
參考:https://docs.pytest.org/en/latest/goodpractices.html#test-discovery
斷言一定引發異常
使用引發助手來斷言某些代碼引發異常
參考:https://docs.pytest.org/en/latest/assert.html#assertraises
以“安靜”報告模式執行測試功能
注意:-q/--quiet在本示例和以下示例中,該標志使輸出保持簡短。
將多個測試分組到一個類中
開發多個測試后,您可能需要將它們分組到一個類中。pytest使創建包含多個測試的類變得容易:
注意:請確保為類加上前綴Test,否則不會執行該類。他會找到兩個帶test_前綴的函數。我們可以簡單地通過傳遞其文件名test_0116.py來運行模塊;
一個通過,一個失敗,一個未執行。您可以輕松地在斷言中看到中間值,以幫助您了解失敗的原因。
將測試分組到類中時要注意的一點是,每個測試都有該類的唯一實例。使每個測試共享相同的類實例將對測試隔離非常有害,並且會導致不良的測試實踐。
請求唯一的臨時目錄進行功能測試
pytest提供內置的fixtures/function參數來請求任意資源,例如唯一的臨時目錄。
tmpdir在測試功能簽名中列出名稱,並pytest在執行測試功能調用之前查找並調用夾具工廠以創建資源。在測試運行之前,pytest創建一個“每次測試調用唯一”臨時目錄。
再次執行一次腳本,就生成pytest-1文件夾。
=======================================================================
pytest用例規則
測試文件以test_開頭(或以_test結尾)
測試類以Test開頭,並且不能帶有__init__方法
測試函數以test_開頭
斷言使用assert