淄博做网站的,长清网站建设价格,凡客诚品鞋子,搜索网站做推广领取资料#xff0c;咨询答疑#xff0c;请➕wei: June__Go
上一小节我们学习了pytest多重断言插件pytest-assume,本小节我们讲解一下pytest生成覆盖率报告插件pytest-cov。
测量代码覆盖率的工具在测试套件运行时观察你的代码#xff0c;并跟踪哪些行被运行#xff0c;…领取资料咨询答疑请➕wei: June__Go
上一小节我们学习了pytest多重断言插件pytest-assume,本小节我们讲解一下pytest生成覆盖率报告插件pytest-cov。
测量代码覆盖率的工具在测试套件运行时观察你的代码并跟踪哪些行被运行哪些没有。这种测量被称为行覆盖率其计算方法是将运行的总行数除以代码的总行数。代码覆盖率工具还可以告诉你在控制语句中是否覆盖率了所有的路径这种测量称为分支覆盖率。
什么是pytest-cov?
pytest-cov 是Pytest的一个插件它提供了一种简单而强大的方式来测量和报告代码的测试覆盖率。通过集成测试覆盖率工具pytest-cov可以帮助开发者了解哪些部分的代码被测试覆盖哪些部分还需要进一步的测试。
pytest-cov 的主要功能包括
生成覆盖率报告pytest-cov 可以生成详细的覆盖率报告包括总体覆盖率、每个文件的覆盖率以及每一行代码是否被测试覆盖的信息。
支持多种报告格式pytest-cov 支持多种报告格式包括纯文本、HTML、XML 等。你可以根据需要选择合适的报告格式。
**集成到 pytest**pytest-cov 完全集成到 pytest 中你可以在运行 pytest 命令时加上 --cov 参数来启用覆盖率测试。
支持并行测试如果你在使用 pytest-xdist 进行并行测试pytest-cov 也可以正确地生成覆盖率报告。安装pytest-cov
这个插件是依赖coverage.py所以会自动安装coverage
pip install pytest-cov
pytest-cov基本用法
以下的篇幅将根据一个实际的案例来介绍pytest-cov的基本用法。
假设你有一个名为my_project 的项目其中包含一个名为 calculator 的模块你想要使用pytest-cov来测试并测量 calculator 模块的覆盖率。以下是一个简单的案例
1. 项目结构
my_project/├── calculator/│ ├── __init__.py│ └── calculator.py├── tests/│ ├── __init__.py│ └── test_calculator.py└── pytest.ini
2. calculator.py代码内容
# my_project/calculator/calculator.pydef add(a, b):return a bdef subtract(a, b):return a - b
3. test_calculator.py代码内容
# my_project/tests/test_calculator.pyfrom calculator.calculator import add, subtractdef test_add():result add(3, 5)assert result 8def test_subtract():result subtract(10, 4)assert result 6
4. pytest.ini的设置内容
# my_project/pytest.ini[pytest]addopts --covcalculator --cov-reporthtml
5. 运行测试
在项目的根目录下运行以下命令
pytest tests/
此外如果想同时生成HTML格式的覆盖率报告可以运行
pytest --covcalculator --cov-reporthtml tests/
这将运行 tests/ 目录下的测试并使用pytest-cov测量 calculator 模块的覆盖率。HTML报告将生成在项目根目录下的 htmlcov 文件夹中。执行完之后打开htmlcov文件夹打开index.html内容如下截图 如果更改测试文件的代码比如删除一个测试函数 test_subtract 那么此时覆盖率就不应该是100%了有兴趣的话大家可以试一试。
通过这个简单的案例你可以了解如何使用pytest-cov来测试和测量项目中特定模块的代码覆盖率。在实际项目中你可以根据项目结构和需要进行适当的调整。
最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走希望可以帮助到大家领取资料咨询答疑请➕wei: June__Go