欢迎访问宙启技术站
智能推送

Python中pytest()的测试覆盖率。

发布时间:2024-01-02 23:13:59

pytest是Python中一个常用的测试框架,可以帮助开发者进行单元测试、集成测试和功能测试等。测试覆盖率是评估测试的完整性和质量的一种指标,表示程序中被测试覆盖到的代码比例。在pytest中,可以使用pytest-cov插件来计算测试覆盖率。

首先,我们需要安装pytest和pytest-cov插件:

pip install pytest
pip install pytest-cov

假设我们有以下的一个简单的Python程序,保存为example.py:

def add(a, b):
    return a + b

def multiply(a, b):
    return a * b

def divide(a, b):
    return a / b

接下来,我们可以编写对example.py中的函数进行测试的代码,保存为test_example.py:

import example

def test_add():
    assert example.add(2, 3) == 5

def test_multiply():
    assert example.multiply(2, 3) == 6

def test_divide():
    assert example.divide(6, 2) == 3

在终端中,进入保存代码的目录,并运行以下命令:

pytest --cov=example test_example.py

执行完以上命令后,pytest会自动运行test_example.py中的测试函数,并输出测试结果。另外,pytest-cov插件会计算测试覆盖率,并显示在终端中。

例如,输出结果可能如下所示:

----------- coverage: platform darwin, python 3.8.5-final-0 -----------
Name                  Stmts   Miss  Cover
-----------------------------------------
example.py                6      0   100%
test_example.py           9      0   100%
-----------------------------------------
TOTAL                    15      0   100%

其中, 列Name表示被测试的模块或文件名;第二列Stmts表示语句的数量;第三列Miss表示未被覆盖的语句数量;第四列Cover表示测试覆盖率。

可以看到,在这个例子中,所有的语句都被覆盖到了,测试覆盖率达到了100%。如果有未被覆盖到的语句,pytest-cov也会将其输出,并显示出具体是哪些语句未被覆盖到。

通过pytest-cov插件,我们可以方便地计算并查看测试覆盖率,从而了解测试的完整性和质量。这对于保证代码的正确性和可靠性非常有帮助。