如何在 Python 中使用 pytest-cov 模块进行测试覆盖率统计

2023-04-13 00:00:00 python pytest 如何在

pytest-cov 是一个用于 Python 单元测试的测试覆盖率统计工具。它可以方便地生成代码覆盖率报告,并可以通过多种输出格式展示测试结果。本文将介绍如何使用 pytest-cov 进行测试覆盖率统计。

  1. 安装 pytest-cov

首先,需要安装 pytest-cov 模块。可以通过 pip 命令进行安装:

pip install pytest-cov
  1. 编写测试代码

编写一个简单的测试用例,测试一个字符串是否包含“pidancode.com”:

def test_string_contains_pidancode():
    string = "Welcome to pidancode.com"
    assert "pidancode.com" in string
  1. 运行测试

使用 pytest 运行测试代码,同时开启覆盖率统计:

pytest --cov=. test_sample.py

其中,--cov=. 表示统计当前目录的代码覆盖率,test_sample.py 是测试文件的文件名。

  1. 查看统计结果

在运行结束后,pytest-cov 会输出测试覆盖率统计结果,包括覆盖率百分比、未覆盖的代码行等信息。例如:

----------- coverage: 100.0% -----------
Name           Stmts   Miss  Cover
----------------------------------
test_sample       3      0   100%
----------------------------------
TOTAL              3      0   100%

其中,Stmts 表示代码行数,Miss 表示未覆盖的代码行数,Cover 表示代码覆盖率百分比。

  1. 生成报告

可以使用 --cov-report 参数生成各种格式的报告,包括 html、xml、json 等。例如,生成 html 报告:

pytest --cov=. --cov-report html test_sample.py

运行结束后,会在当前目录下生成一个 htmlcov 目录,其中包含代码覆盖率报告的 HTML 文件。

以上是使用 pytest-cov 进行 Python 单元测试的测试覆盖率统计的基本过程。通过以上步骤,可以很方便地统计代码覆盖率,并在需要的时候生成报告。

相关文章