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