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