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