Python 中的測試覆蓋率
Fariba Laiq
2024年2月15日
本文將討論在 Python 中使用覆蓋來測試 Python 程式的執行。
程式碼覆蓋意味著監控程式碼以檢查哪些部分已被執行,哪些部分沒有被執行。為此,我們使用 Python 中的 pytest
外掛。
在 Python 中安裝 pytest
外掛以進行覆蓋
要使用這個外掛,我們應該首先使用以下命令安裝它。
#Python 3.x
pip install pytest-cov
在 Python 中使用 pytest
外掛進行語句覆蓋
語句覆蓋,也稱為行覆蓋,是白盒測試。所有可執行語句至少執行一次,以確保執行無任何錯誤。
語句覆蓋率是 Python 中覆蓋率模組使用的預設覆蓋率。它根據以下公式計算覆蓋率。
Statement Coverage = {Number of statements executed / Total number of statements in the code} * 100
我們將建立一個模組 CovModule
來執行我們示例中的覆蓋率。這將包括要覆蓋的實際程式碼。
我們將建立另一個 Python 檔案,我們將在其中匯入該模組並呼叫該函式。
在下面的程式碼中,如果 a
的值大於或等於 b
,則 if
塊將執行,而 else
塊將跳過。因此,覆蓋率為 75%。
因此,if
或 else
將在任何情況下執行。但是程式碼的整體覆蓋率將是 100%。
# Python 3.x
# CovModule.py
def check(num1, num2):
if num1 <= num2:
print("if executed")
else:
print("else executed")
# Python 3.x
# test.py
from CovModule import check
check(2, 3)
最後,我們將執行以下命令來執行程式碼覆蓋率並生成其報告。我們將在報告中看到模組名稱、語句總數、錯過的語句和執行的語句。
pytest --cov CovModule test.py
輸出:
作者: Fariba Laiq
I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.
LinkedIn