pytest代码覆盖率插件

一、官方文档

二、安装pytest插件(这个插件是依赖coverage.py,所以会自动安装coverage)

pip install pytest-cov

三、如何使用

# 指定目录,终端输入命令
pytest --cov=src 

image

# 指定目录下的指定文件(模块)
# 根据上图可以看出来,我的src目录下,有2个文件(模块),一个是calc.py,
pytest --cov=src.calc

image

#生成报告,报告可以选择html格式
# cov-report html:cov 生成html格式 cov是生成的目录
pytest --cov=src --cov-report html:cov

四、示例代码

calc.py

class Calc:
    @staticmethod
    def add(a, b):
        return a + b

    @staticmethod
    def sub(a, b):
        return a - b

    @staticmethod
    def div(a, b):
        if b == 0:
            raise Exception("除数不能为0")
        return a/b

calc_test.py

from src.calc import Calc
import pytest


class TestCalc:
    c = Calc()

    @pytest.mark.parametrize("num1,num2,expect", [[1, 2, 3], [2, 3, 5]])
    def test_add(self, num1, num2, expect):
        assert self.c.add(num1, num2) == expect

    @pytest.mark.parametrize("num1,num2,expect", [[1, 2, -1], [10, 3, 7]])
    def test_sub(self, num1, num2, expect):
        assert self.c.sub(num1, num2) == expect

    @pytest.mark.parametrize("num1,num2,expect", [[10, 5, 2], [20, 4, 5]])
    def test_div(self, num1, num2, expect):
        assert self.c.div(num1, num2) == expect
posted @   弩哥++  阅读(173)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示