当前位置: 首页 > news >正文

Pytest的参数化测试

概念

Pytest中有一个装饰器,可以通过它来实现,多组输入数据驱动同一测试逻辑‌,避免重复编写相似的测试代码,提高测试覆盖率和代码简洁性
这个就是@pytest.mark.parametrize

一、基础用法

import pytest

@pytest.mark.parametrize("参数名", 数据集合)
def test_name(参数名):
    # 测试逻辑

以上是一个简易的demo结构,在@pytest.mark.parametrize中写入参数名以及对应的数据集合后,会在test_name这个函数里进行执行。

  • 参数名:字符串形式,多个参数用逗号分隔(如 “a,b”)
  • 数据集合:可迭代对象(列表、元组等),每个元素为一组测试数据

二、参数化使用场景

场景1:单参数多值场景

需求:验证字符串转换int类型是否符合期待值

@pytest.mark.parametrize("input_str, expected", [
    ("123", 123), 
    ("-5", -5), 
    ("0", 0),
    ("abc", pytest.raises(ValueError))  # 验证异常
])
def test_string_to_int(input_str, expected):
    if isinstance(expected, int):
        as

相关文章:

  • Xamarin.Android实现本地化部署DeepSeek的对话功能
  • 【docker】安装SQLServer
  • DrRacket是一款专为Scheme和Racket编程语言设计的集成开发环境(IDE)
  • 重温Docker 构建
  • 3110. 字符串的分数
  • java版嘎嘎快充玉阳软件互联互通中电联云快充协议充电桩铁塔协议汽车单车一体充电系统源码uniapp
  • Thinkphp(TP)漏洞攻略
  • python基础语法中的内置函数与拆包
  • 我的创作纪念日暨六年编程路的回顾
  • Select多路转接
  • 深入理解 Bitmap 索引:原理、场景与应用案例
  • ccf2202邻域均值
  • PostgreSQL并行化内容
  • API接口文档(人力资源管理系统)
  • 给网站配置https访问
  • JVM(基础篇)
  • gitlab将其他分支设置为master分支
  • 机器学习之回归
  • MOSN(Modular Open Smart Network)是一款主要使用 Go 语言开发的云原生网络代理平台
  • Java中static final才是修饰常量的,单独的final并不能修饰常量这样理解对吗?
  • 陈芋汐世界杯总决赛卫冕夺冠,全红婵无缘三大赛“全满贯”
  • 重庆渝中警方:男子点燃摩托车欲寻衅滋事,被民警和群众合力制服
  • 海外考古大家访谈|斯文特·帕波:人类进化遗传学的奠基者
  • 2025财政观察①长三角罚没收入增速放缓,24城仍在上涨
  • 旭辉控股集团:去年收入477.89亿元,长远计划逐步向轻资产业务模式转型
  • 长三角铁路今日预计发送旅客420万人次,有望创单日客发量新高