概述

在自动化测试中,@pytest.mark.parametrize 不仅仅能用来为测试函数提供多组输入数据,还能配合其他功能实现更复杂的测试逻辑。本文将带你深入了解 @pytest.mark.parametrize 的多种常见用法,助你在不同场景下写出更高效、更清晰的测试代码

基础用法回顾:单个参数化

这是最常见的用法,用于为测试函数传入多组参数。
可参考前面的讲解:Pytest中的参数化测试:提升效率的利器

import pytest@pytest.mark.parametrize("a, b, expected", [(2, 3, 5),(-1, 1, 0),(0, 0, 0)
])
def test_add(a, b, expected):assert a + b == expected

高级用法

嵌套参数化(多个参数标记)

如果你希望对多个维度进行组合测试,可以使用 多个 parametrize 装饰器,Pytest 会自动进行笛卡尔积组合。

import pytest@pytest.mark.parametrize("a", [1, 2])
@pytest.mark.parametrize("b", [3, 4])
def test_nested_parametrize(a, b):print(f"a={a}, b={b}")assert a + b > 0

这会生成 2 × 2 = 4 个测试用例:

test_nested_parametrize[a=1-b=3]
test_nested_parametrize[a=1-b=4]
test_

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/90842.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/90842.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/90842.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

K8S 九 安全认证 TLS

目录第九章 安全认证访问控制概述认证管理授权管理 RBACRBACRolerules中的参数RoleBinding9.4 准入控制其他K8S的TLS是什么(DeepSeek)1. 加密通信2. 身份认证(Authentication)3. 数据完整性K8s 中 TLS 的具体应用**1. API Server …

积分兑换小程序Java

某个学校为了激励学生踊跃参加一些社会实践活动,会对参与者给予一些校园积分,学生们获得校园积分后可以使用校园积分在指定的老师那兑换一些学习用具,当前可兑换的物品和对应的积分数量如下:铅笔1分橡皮2分作业本3分文具盒5分为了…

函数指针示例

使用函数指针来调用 printf。下面是对代码的详细解释&#xff1a;&#x1f4c4; 源代码解析#include <stdio.h>int main() {int (*myshow)(const char *, ...); // 声明一个函数指针&#xff0c;指向可变参数函数printf("hello world!\n");myshow printf; /…

不坑盒子突然不见了怎么办?

如果你安装后之前一切正常&#xff0c;突然某天在Office的功能区看不到不坑盒子了&#xff0c;这种是插件被禁用了&#xff0c;重装安装插件、Office都是不能解决的&#xff0c;必须按下面的方法解决。WPS中1.随便打开一个文档&#xff0c;点击文件-选项-信任中心&#xff0c;最…

Java面试全栈通关:从微服务到AI的技术深度解析

Java面试全栈通关&#xff1a;从微服务到AI的技术深度解析 面试现场&#xff1a;大厂技术终面室 面试官&#xff1a;谢飞机同学&#xff0c;今天我们将从基础到架构&#xff0c;全面考察你的Java技术栈掌握程度。请真实展示你的技术水平。 谢飞机&#xff1a;&#xff08;挺胸抬…

《Java 程序设计》第 7 章 - 继承与多态

引言在 Java 面向对象编程中&#xff0c;继承与多态是两大核心特性&#xff0c;它们共同支撑了代码的复用性、扩展性和灵活性。本章将从继承的基本实现开始&#xff0c;逐步深入到方法覆盖、访问控制、抽象类等概念&#xff0c;最终揭示多态的本质与应用。通过大量可运行的代码…

ksql连接数据库免输入密码交互

ksql连接数据库免输入密码交互1. 使用 .pgpass 文件&#xff08;推荐&#xff09;2. 使用环境变量3. 使用连接字符串4. 修改 ksql 的别名&#xff08;简化命令&#xff09;5. 注意事项6. 密码含特殊字符转义在 Kingbase 中使用 ksql 连接数据库时&#xff0c;如果希望避免每次手…

UniApp H5 适配 PC 端新姿势:打造跨设备一致体验

在移动互联网蓬勃发展的今天&#xff0c;很多开发者会选择使用 UniApp 来开发多端应用&#xff0c;尤其是 H5 端&#xff0c;因其无需下载安装即可访问的特性&#xff0c;深受用户喜爱。但 UniApp H5 应用在 PC 端直接打开时&#xff0c;往往会因为屏幕尺寸的巨大差异&#xff…

【MySQL#4】函数 复合查询 内外连接

&#x1f4c3;个人主页&#xff1a;island1314 ⛺️ 欢迎关注&#xff1a;&#x1f44d;点赞 &#x1f442;&#x1f3fd;留言 &#x1f60d;收藏 &#x1f49e; &#x1f49e; &#x1f49e; 生活总是不会一帆风顺&#xff0c;前进的道路也不会永远一马平川&#xff0c;如何面…

C++常见面试题之一

一、语言基础与内存管理const与constexpr的区别&#xff1f;应用场景&#xff1f; const&#xff1a;运行时常量&#xff0c;修饰变量/函数不可修改。constexpr&#xff1a;编译期常量&#xff08;C11&#xff09;&#xff0c;用于优化计算&#xff08;如数组大小&#xff09;。…

Golang 语言中的指针介绍

介绍&#xff1a;指针式一种数据类型&#xff0c;用来存储值的内存地址&#xff0c;为了便于理解&#xff0c;我们也可以把指针未内存地址&#xff0c;指针类型只占用内存4个或 8 个字节&#xff0c;在Golang 语言中&#xff0c;类型名称加 * 表示改类型的指针类型。指针类型变…

Flink 状态管理设计详解:StateBackend、State、RocksDB和Namespace

为什么需要 StateBackend&#xff1f;—— 职责分离原则我们可以用一个银行的例子来类比&#xff1a;State (如 ValueState, ListState) 就像是你的银行卡。AbstractKeyedStateBackend 就像是银行的整个后台系统&#xff08;包括总服务器、数据库、风控系统、会计系统等&#x…

橱柜铰链的革命:炬森精密如何以创新科技重塑家居体验

在现代化家居设计中&#xff0c;橱柜不仅是存储空间的核心&#xff0c;更是生活品质的象征。而作为橱柜的“关节”&#xff0c;橱柜铰链的性能直接影响着日常使用的便捷性、安全性和耐久性。然而&#xff0c;许多消费者在橱柜使用中常遭遇噪音干扰、频繁松动或早期损坏等痛点&a…

医疗系统国产化实录:SQL Server国产替代,乙方保命指南

医疗行业的SQL Server替代&#xff0c;和普通业务系统完全不是一个量级——医嘱逻辑嵌套几十层存储过程、收费结算小数点错位能引发医患纠纷、电子病历查询慢一秒医生直接拍桌子。作为被按在手术台上的乙方PM&#xff0c;实测四款主流国产库后&#xff0c;掏心窝子说句实话&…

WAIC 2025 盛大启幕,深思考邀您解锁端侧 AI 新可能​!

2025 世界人工智能大会今日正式启幕&#xff0c;深思考人工智能&#xff08;iDeepWise&#xff09;携端侧多模态大模型技术成果登陆展会&#xff0c;与行业伙伴共探端侧 AI 发展新机遇。作为专注于类端侧多模态大模型领域的创新力量&#xff0c;深思考此次重点展示了 iDeepWise…

MySQL相关概念和易错知识点(2)(表结构的操作、数据类型、约束)

目录1.表结构的操作&#xff08;1&#xff09;增加表&#xff08;2&#xff09;查看库中所有的表&#xff08;3&#xff09;查看表每个列的约束&#xff08;4&#xff09;删除整张表&#xff08;5&#xff09;删除某个具体的列&#xff08;6&#xff09;增加某个具体的列&#…

1. Qt多线程开发

目录方法1.继承QThread使用案例总结方法2.将qobject对象moveToThread&#xff08;官方推荐&#xff09;使用案例总结方法3.QRunnable QThreadPool使用案例总结方法4.快速线程QtConcurrentQFutureWatcher使用案例总结代码下载方法1.继承QThread 需要实现QThread的抽象函数run …

ARM入门学习方法分享

首先认识什么是ARM?ARM公司简介ARM是Advanced RISC Machines的缩写&#xff0c;它是一家微处理器行业的知名企业&#xff0c;该企业设计了大量高性能、廉价、耗能低的RISC &#xff08;精简指令集&#xff09;处理器。 1985年第一个ARM原型在英国剑桥诞生。公司的特点是只设计…

基于springboot的在线数码商城/在线电子产品商品销售系统的设计与实现

用户&#xff1a;数码产品&#xff0c;限时秒杀&#xff0c;种草分享&#xff0c;新品资讯&#xff0c;留言板&#xff0c;订单管理&#xff0c;在线客服&#xff0c;购物车&#xff0c;个人中心管理员&#xff1a;个人中心&#xff0c;用户管理&#xff0c;数码分类管理&#…

Zookeeper学习专栏(十):核心流程剖析之服务启动、请求处理与选举协议

文章目录前言一、服务端启动流程1.1 启动入口类&#xff1a;QuorumPeerMain1.2 集群模式启动核心&#xff1a;runFromConfig1.3 QuorumPeer线程核心逻辑&#xff1a;run()1.4 关键子流程&#xff1a;数据恢复1.5 关键设计要点二、请求处理链&#xff08;责任链模式&#xff09;…