pytest之用例設計原則及執行順序

2022-06-30 22:15:10 字數 1818 閱讀 9566

前言:

和unittest一樣,pytest也有一套用例設計的規則和執行順序。

一、用例設計原則:

1、檔案必須以 test_*開頭 或 *_test結尾。

2、測試用例類必須以 test開頭。

3、測試用例必須以 test 開頭。

二、驗證用例收集規則:

有這樣乙個目錄結果:有2個package(模組包,有__init__.py檔案),乙個directory(資料夾,無__init__.py檔案)。

其中,package和directory中都有2個.py檔案,乙個以test開頭,乙個非test開頭。

每個.py檔案中有要給test類和非test類,而test類中有乙個test開頭的方法和非test開頭的方法。

執行結果如下:

我們可以看到:

1、無論是package還是directory,都是pytest的收集物件。

2、非test*_開頭或*_test結尾的.py檔案不會被收集。

3、非test開頭的類不會被收集。

4、非test開頭的方法不會被收集。

這樣我們就得出並驗證了規則:

1、test_* 開頭 或 *_test結尾的.py檔案。

2、test開頭的類。

3、test開頭的方法或函式。

二、執行順序:

和unittest一樣,遵循ascii碼的順序:0~9,a~z, a-z

重點:

pytest會收集當前目錄及其子目錄下的符合用例設計規則的用例:

runner.py有pytest執行入口:pytest.main(["-s"]),我們看執行時收集的用例從**來:

我們可以看到,runner.py收集了和他同一目錄中的package或directory(如果有子目錄,也會收集)

我們在看下面的示例:

該例項時在testcase1資料夾中加了乙個runner1.py(和runner.py**一樣,有pytest執行入口)

收集的用例如下:

我們可以看到,runner1只收集了他所在目錄(當前目錄)下的test_1.py檔案。

所以,我們的出來乙個結論:pytest會收集當前目錄或子目錄中的測試用例。

思考:那我們如果從右上角並用pytest框架執行整個專案呢?

可參考小菠蘿的測試筆記:

PyTest之用例超時強制退出

由於某些測試用例步驟長,執行時間比較久,為了防止程式長時間處於等待狀態,浪費寶貴時間。為此,我們可以設定乙個超時時間,當測試在指定的時間長度內沒有完成 即使程式並沒有 僵死 只是處理得比較慢 測試會被強行終止。再此,需要安裝乙個外掛程式pytest timeout。如下 pip install py...

軟體測試核心之用例設計

測試設計 將概括的測試目標轉化為具體的測試條件和測試用例的一系列活動 測試分析和設計的主要任務 確定測試條件 測試用例 通過使用在測試計畫中確定的測試技術與測試方法,對於已確定的測試條件進行逐步推敲,精煉而設計出來的,重點說明如何具體操作,產生何種結果的文件 設計方法 定義 把程式的輸入域劃分成若干...

不得不說之用例設計

自動化測試用例如何設計,對於新手來說也是比較難理解的問題。不少新手剛剛掌握了寫指令碼的能力,一上來就拿著功能測試用例一條一條的轉化成自動化用例。在寫的過程中,會發現諸多問題,例如,指令碼中重複 很多,乙個指令碼的執行結果影響到另乙個指令碼的執行,有些功能用例很難轉化成自動化用例等。站在使用者角度設計...