Python 中的測試覆蓋率

Fariba Laiq 2023年1月30日 2022年5月17日
  1. 在 Python 中安裝 pytest 外掛以進行覆蓋
  2. 在 Python 中使用 pytest 外掛進行語句覆蓋
Python 中的測試覆蓋率

本文將討論在 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%。

因此,ifelse 將在任何情況下執行。但是程式碼的整體覆蓋率將是 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)

最後,我們將執行以下命令來執行程式碼覆蓋率並生成其報告。我們將在報告中看到模組名稱、語句總數、錯過的語句和執行的語句。

#Python 3.x
pytest --cov CovModule test.py

輸出:

Python 覆蓋率

Author: Fariba Laiq
Fariba Laiq avatar Fariba Laiq avatar

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