pytest-cov代码覆盖率

本文详细介绍了如何在pytest.ini中配置pytest-cov以测量calculator模块的覆盖率,并指导用户如何生成HTML格式的覆盖率报告,包括使用`pytest--cov=calculator--cov-report=html`命令及针对已安装包如cards项目的测试方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pytest.ini的设置内容:

# my_project/pytest.ini
   [pytest]
   addopts = --cov=calculator --cov-report=html

在项目的根目录下运行以下命令: 

pytest tests/

此外如果想同时生成HTML格式的覆盖率报告,可以运行:

pytest --cov=calculator --cov-report=html tests/

这将运行 tests/ 目录下的测试,并使用pytest-cov测量 calculator 模块的覆盖率。HTML报告将生成在项目根目录下的 htmlcov 文件夹中。执行完之后,打开htmlcov文件夹,打开index.html

要用coverage.py运行测试,你需要添加--cov标志,并提供你要测量的代码的路径,或者你要测试的安装包。cards项目是已安装的包,所以我们用--cov=cards来测试它。

coverage生成html报告

pytest —cov —cov-report=html

pytest —cov=src

pytest --cov=Cards ch7
$ pip install coverage
$ pip install pytest-cov
<think>好的,用户之前问过其他代码覆盖率工具,现在想知道如何用pytest-cov在命令行直接显示覆盖率。我需要先确认用户已经了解pytest-cov的基本使用,可能他们在使用过程中遇到了问题,或者想快速查看结果而不生成报告。 用户可能希望简化步骤,直接在运行测试时就看到覆盖率结果,而不需要额外输入命令生成报告。需要检查pytest-cov的常用命令行选项,比如--cov-report参数,可能terminal或者summary选项可以满足需求。 另外,用户可能对报告内容有具体要求,比如只显示总体覆盖率还是包含每个文件的详情。需要解释不同的报告类型,例如--cov-report=term会显示每个文件的覆盖率细节,而--cov-report=term-missing会显示未覆盖的具体行号。 还要注意是否需要指定被测模块,比如使用--cov=myproject来限定覆盖范围,避免统计到不需要的文件。如果用户的项目结构复杂,可能需要指导他们正确设置路径。 另外,用户可能不清楚如何合并多个测试运行的覆盖率数据,这时候需要提到--cov-append参数,但一般情况下可能不需要,除非他们有特殊需求。 最后,可能需要提醒用户安装是否正确,以及如何验证输出是否正确。比如运行pytest时是否带有--cov参数,是否有错误提示等。如果用户遇到问题,可能需要进一步排查安装或配置问题。</think>通过 `pytest-cov` 可以直接在命令行中输出代码覆盖率结果,无需额外操作。以下是具体使用方法及常用参数说明: --- ### **基本用法** 1. **安装依赖** ```bash pip install pytest pytest-cov ``` 2. **运行测试并显示覆盖率** 使用 `--cov` 指定被测代码的目录或模块,`--cov-report` 指定报告格式: ```bash pytest --cov=myproject tests/ --cov-report=term ``` - `--cov=myproject`:计算 `myproject` 目录或模块的覆盖率。 - `--cov-report=term`:在终端直接输出覆盖率报告。 --- ### **输出效果示例** 运行后会显示类似以下结果: ```text ----------- coverage: platform linux, python 3.10.12 ----------- Name Stmts Miss Cover ------------------------------------------ myproject/__init__.py 2 0 100% myproject/utils.py 15 3 80% ---- TOTAL 17 3 82% ``` --- ### **常用参数详解** 1. **指定覆盖率范围** - `--cov=<path>`:限定覆盖率计算的目录或模块(如 `src/` 或 `myproject`)。 - 示例:`pytest --cov=src tests/` 2. **控制报告内容** - `--cov-report=term`:仅显示总覆盖率(默认)。 - `--cov-report=term-missing`:显示未覆盖的行号。 ```bash pytest --cov=myproject --cov-report=term-missing ``` 输出示例: ```text myproject/utils.py 15 3 80% 15-17, 20 ``` - `--cov-report=term:skip-covered`:隐藏覆盖率 100% 的文件。 3. **多报告组合输出** 同时生成终端报告和 HTML 报告: ```bash pytest --cov=myproject --cov-report=term --cov-report=html ``` --- ### **快速命令** 若项目结构符合默认约定(如代码在 `src/` 或包名目录下),可直接运行: ```bash pytest --cov --cov-report=term ``` --- ### **注意事项** 1. **过滤无关文件** 在 `.coveragerc` 配置文件中忽略虚拟环境等目录: ```ini [run] omit = */venv/* */tests/* ``` 2. **阈值控制** 若需强制覆盖率达标(如低于 80% 时失败),使用 `--cov-fail-under`: ```bash pytest -- 通过上述命令,可以直接在命令行中快速查看代码覆盖率,无需手动生成额外文件!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值