001、pytest安裝和第一個demo
參考資料:http://www.python3.vip/tut/auto/pytest/01/
https://www.cnblogs.com/yoyoketang/p/9356693.html
pytest 可以用來做 系統測試 的自動化, 它的特點有
-
用 Python 編寫測試用例,簡便易用
-
可以用 檔案系統目錄層次 對應 手工測試用例 層次結構
-
靈活的 初始化清除 機制
-
可以靈活挑選測試用例執行
-
利用第三方外掛,可以生成不錯的報表
pytest 用例規則
- 測試檔案以 test_ 開頭(以 _test結尾 也可以)
- 測試類以 Test開頭,並且不能帶有
__init__
- 測試函式以 test_ 開頭
- 斷言使用 assert
- 所有的包pakege必須要有 __init__.py 檔案
pytest執行規則:
專案目錄下執行 pytest —> 尋找 當前目錄及子目錄下以test_*.py 或 *_test.py 的檔案 —> 尋找 Test開頭的類 —> 尋找以test開頭函式 。
1、安裝
虛擬環境安裝, 按住 ctrl + alt + s 彈出如下介面,並按箭頭指示選擇,安裝成功後會顯示 installed successfully。
我們還需要產生測試報表,所以要安裝一個第三方外掛pytest-html
,方法同上。
2、快速開始
1.新建一個test_sample.py檔案,寫以下程式碼:
# -*- coding:utf-8 -*- # @Author: Sky # @Email: [email protected] # @Time: 2021/7/13 14:55 def func(x): return x +1 def test_answer(): assert func(3) == 5
2.開啟test_sample.py所在的目錄(test_01),cmd視窗輸入:pytest(或者輸入py.test也可以)
3、pytest執行規則
專案目錄下執行 pytest —> 尋找 當前目錄及子目錄下以 test_*.py 或 *_test.py 的檔案 —> 尋找 Test開頭的類 —> 尋找以 test開頭函式 。
寫個測試類
1、前面是寫的一個test開頭的測試函式,當用例有多個的時候,寫函式就不太合適了。這時可以把多個測試用例,寫到一個測試類裡。
# test_class.py class TestClass: def test_one(self): x = "this" assert 'h' in x def test_two(self): x = "hello" assert hasattr(x, 'check')
說明: hasattr(object, name)
判斷一個物件裡面是否有name屬性或者name方法,返回BOOL值,有name特性返回True, 否則返回False 。
需要注意的是name要用括號括起來 。
2、如果只想執行其中一個 (test_*.py 和 *_test.py),可以指定傳遞檔名test_class.py ( 相對路徑 或 絕對路徑 )來執行模組 :
pytest -q .\test_sample.py
備註: -q, --quiet decrease verbosity( 顯示簡單結果)