Python 中的测试覆盖率
Fariba Laiq
2023年1月30日
2022年5月17日
本文将讨论在 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)
最后,我们将运行以下命令来运行代码覆盖率并生成其报告。我们将在报告中看到模块名称、语句总数、错过的语句和执行的语句。
#Python 3.x
pytest --cov CovModule test.py
输出:
Author: 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