如何使用pytest進行Python單元測試
引言:
單元測試是軟體開發中不可或缺的一項工作,它能夠幫助我們保證程式碼的品質和穩定性。在Python中,pytest是一個功能強大且易於使用的單元測試框架。本文將介紹如何使用pytest進行Python單元測試。
一、安裝pytest
首先,我們需要安裝pytest。使用pip指令可以很方便地完成安裝:
pip install pytest
二、寫測試案例
接下來,我們需要寫測試案例。測試案例是對被測程式碼的函數或功能進行驗證的程式碼區塊。
範例:
假設我們要測試一個簡單的計算器模組,其中包含加法、減法、乘法和除法四種運算。我們可以在專案中建立一個名為test_calculator.py
的文件,用於存放測試案例的程式碼。以下是一個範例測試案例的程式碼:
# test_calculator.py from calculator import add, subtract, multiply, divide def test_add(): assert add(2, 3) == 5 def test_subtract(): assert subtract(5, 3) == 2 def test_multiply(): assert multiply(2, 3) == 6 def test_divide(): assert divide(6, 3) == 2
在上述程式碼中,我們使用了pytest框架提供的assert
語句來斷言測試結果是否符合預期。
三、執行測試案例
完成測試案例的編寫後,我們可以使用pytest來執行這些測試案例。
在命令列中進入專案目錄,輸入以下命令進行測試:
pytest
pytest會自動尋找專案中的測試案例並執行。
運行結果範例:
============================= test session starts ============================== platform darwin -- Python 3.9.0, pytest-6.2.2, py-1.10.0, pluggy-0.13.1 rootdir: /path/to/project collected 4 items test_calculator.py .... [100%] ============================== 4 passed in 0.02s ===============================
上述結果說明我們所寫的4個測試案例全部通過了測試。
四、進階用法
範例:
import pytest @pytest.mark.parametrize( "a, b, expected", [ (2, 3, 5), (-1, 1, 0), (0, 0, 0), ], ) def test_add(a, b, expected): assert add(a, b) == expected
在上述程式碼中,我們使用@pytest.mark.parametrize裝飾器來參數化測試案例。每組參數都會自動傳遞給被測試的函數,並進行斷言判斷。
setup
和teardown
等裝飾器來實作這些操作。 範例:
@pytest.fixture(autouse=True) def setup_and_teardown(): # 在测试用例运行之前的准备工作 print("准备工作") yield # 在测试用例运行之后的清理工作 print("清理工作")
在上述範例中,我們使用setup_and_teardown
裝飾器來定義一個前置和後置操作的函數。使用yield
關鍵字可以將測試案例插入到該函數定義的位置。
結論:
本文介紹如何使用pytest進行Python單元測試。透過安裝pytest、編寫測試案例、執行測試案例和使用進階用法,可以使用pytest方便地進行程式碼測試。希望本文能對您在軟體開發中的單元測試工作有所幫助。
以上是如何使用pytest進行Python單元測試的詳細內容。更多資訊請關注PHP中文網其他相關文章!