今天這篇一樣介紹 Pytest,因為 Pytest 提供的裝飾器功能蠻多的,所以需要拆成好幾篇介紹,文章篇幅才不會太長,那就繼續把之前沒介紹完的基礎應用和裝飾器介紹完吧
@pytest.mark.自定義
可以自己創建標記,用於對測試進行分組或特殊處理等用途
首先需要在同個料夾下創立一個pytest.ini
的檔案,然後在裡面定義標記,格式如下:標記名稱: 備註
pytest.ini
[pytest]
markers =
GroupA: A組測試
GroupB: B組測試
可在終端機輸入下面指令確認是否有定義成功
pytest --markers
輸出結果
接下來在測試檔中加入自行定義的標記裝飾器
project_test.py
import project
import pytest
@pytest.mark.GroupA
@pytest.mark.parametrize("a, b, return_", [
(1, 2, 3),
(3, 4, 7),
(2, 6, 8),
(2, 7, 9),
(2, 8, 10),
])
def test_add(a, b, return_):
assert project.add(a, b) == return_
@pytest.mark.GroupB
def test_sub():
assert project.sub(2, 6) == -4
assert project.sub(2, 7) == -5
@pytest.mark.GroupA
def test_mul():
assert project.mul(2, 6) == 12
assert project.mul(2, 7) == 14
@pytest.mark.GroupB
def test_div():
assert project.div(6, 2) == 3
assert project.div(8, 2) == 4
@pytest.mark.GroupA
def test_ironman():
assert project.ironman(26) == "Share More Gain More: DAY26"
assert project.ironman(27) == "Share More Gain More: DAY27"
在終端機輸入以下指令來測試特定的標記
-m:用來指定標記
pytest -v project_test.py -m GroupA
測試結果
標記為 GroupA 的測試結果
標記為 GroupB 的測試結果
在測試指令的後面加上::測試函數名稱
,可以指定只測試該函數
pytest -v project_test.py::test_ironman
輸出結果
在測試指令的後面加上-k "keyword"
,可以測試符合指定關鍵字的函數
pytest -v project_test.py -k "sub"
輸出結果
那 Pytest 這個套件就簡單介紹到這裡,希望能幫助到讀者了解自動化測試的意義及使用方式,有任何疑問或補充,歡迎在下方留言區一起討論!