20、pytest中的参数化

官方实例

# content of test_expectation.py

import pytest

@pytest.mark.parametrize("test_input, expected",[("3+5",8),("2+4",6),("6*9",42)])
def test_eval(test_input, expected):
    assert eval(test_input) == expected
# content of test_expectation_class
import pytest

@pytest.mark.parametrize("n, expected",[(1,2),(3,4)])
class TestClass:
    def test_simple_case(self, n, expected):
        assert n + 1 == expected
        
    def test_weird_simple_case(self, n, expected):
        assert (n * 1) + 1 == expected
# content of test_parametrize_glob.py
import pytest

pytestmark = pytest.mark.parametrize("n,expected",[(1,2),(3,4)])

class TestClass:
    def test_simple_case(self, n, expected):
        assert n + 1 == expected

    def test_weird_simple_case(self, n, expected):
        assert (n * 1) + 1 == expected

解读与实操

内置的pytest.mark.parametrize装饰器允许对测试函数的参数进行参数化。

注意:参数值按原样传递给测试(没有任何副本),例如,如果你传递一个列表或字典作为参数值,并且测试用例代码对它进行了修改,那么这些修改将在随后的测试用例调用中反映出来。

在这里插入图片描述

请注意,你也可以在类或模块上使用参数化标记,类中的函数将调用带有参数集内容。

在这里插入图片描述

要将模块中的所有测试参数化,可以将其赋值给pytestmark全局变量。

在这里插入图片描述

场景应用

测试函数相同,只是传入参数不同,就可以用这种方法扩展测试用例。特别是针对列表的搜索功能,同一个搜索函数,但是存在多个搜索项。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/222638.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

unsafe类和varhandle类讲解

Java的Unsafe类是一个非常特殊的类,它提供了一组原始、底层的操作,可以跳过Java的限制,直接操作内存和对象。这些操作可能会破坏Java的安全机制,所以Unsafe类被标记为不安全的。 Unsafe类提供了下列方法: allocateIns…

漏洞复现--云时空商业ERP文件上传

免责声明: 文章中涉及的漏洞均已修复,敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直…

几个查找开源组件CVE的网站和工具

有时在使用一个开源组件之前,需要先调查一下这个组件是否有一些比较验证的CVE。同时,对于一些重要的正在使用的组件,例如:Spring Framework,也希望查询一下是否有严重的CVE。 本文就介绍几个曾经用过的查找开源组件还不…

抖店怎么对接达人带货?达人渠道整理,实操详解!

我是电商珠珠 很多人在抖店开通后,按照流程去正常的跑自然流量,再去找达人带货让自己店铺的流量增多,得到相应的曝光。 但是一些新手小白并不知道从哪去找达人,或者说不知道怎么去筛选达人。 一开始所有人都想着去找头部主播&a…

MySQL_1. mysql数据库介绍

shell脚本差不多快完结了接下来会为大家更新MySQL系列的相关的基础知识笔记,希望对大家有所帮助,好废话不多说,接下来开始正题! 1.mysql数据库介绍 mysql 是一款安全、跨平台、高效的,并与 PHP、Java 等主流编程语言…

docker安装及使用(Linux版本)

文章目录 前言一、docker安装二、docker命令pull(安装镜像)images(安装镜像)run(创建容器)exec(进入运行中的容器)常用命令 总结如有启发,可点赞收藏哟~ 前言 https://do…

Jmeter测试移动接口性能 —— 压测

一般的公司都想知道自己产品的性能瓶颈和以及提升性能,以期大流量来了还撑得住。其实性能测试很难,难点在你不知道性能要达到怎样的需求。难点在于你没有实际的环境场景给你测试,总不能给线上环境你测试吧? 难点在于找性能瓶颈&a…

吐血整理,Web自动化测试-项目阶段性总结,一篇策底打通...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、什么是web自动…

25道Python练手题(附详细答案),赶紧收藏!Python入门|Python学习

题目 1:水仙花数 水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number) 水仙花数是指…

身为 Go 程序员,我为啥更喜欢用 Zig?

Zig 是一种比较新的编程语言,于 2016 年首次推出。Zig 社区将其描述为“一种用于维护稳固的、可优化和可重用软件的通用编程语言”。 看似一句简单的描述,却隐藏着远大的抱负。Zig被看作是可与C语言一较高下的编程语言。此外,Zig 也是一个编…

04 硬件知识入门(二极管)

1 二极管的定义 导电性能介于导体与绝缘体之间的材料称为半导体,常见的半导体材料有硅、锗和硒等。利用半导体材料可以制作各种各样的半导体元器件,如二极管、三极管、场效应管和晶闸管等都是由半导体材料制作而成的。 2 二极管的简介 1.半…

报表生成器FastReport .Net用户指南:带图表的报告(图表要素)

FastReport .Net是一款全功能的Windows Forms、ASP.NET和MVC报表分析解决方案,使用FastReport .NET可以创建独立于应用程序的.NET报表,同时FastReport .Net支持中文、英语等14种语言,可以让你的产品保证真正的国际性。 FastReport.NET官方版…

InnoDB存储引擎体系结构中的各个组件是如何协同工作的?

InnoDB存储引擎体系结构如下图(图片来源:XtraDB / InnoDB internals in drawing): 列举一个UPDATE场景加以说明。 假设有一个UPDATE语句正在执行:UPDATE test SET idx 2 WHERE id10,执行流程如下&#xf…

老师可以做副业吗

当老师,除了教学工作之外,还可以怎样来丰富自己的职业体验和增加收入呢? 自媒体作者 许多教师选择成为自媒体作者,分享自己的教育心得、教学经验以及与学生相处的生活状态等。通过撰写文章、发布在社交媒体上,不仅可以…

AI人工智能在电子商务领域的运用

电子商务领域和个性化新时代的 AI 随着整个社会追求便利性,并且逐渐从传统的实体零售模式转向网购模式,在线零售商必须改变与客户的互动方式。为每个客户提供个性化购物体验的理念一直都存在,但是现在我们正式进入了个性化新时代。这是一个包…

1.1美术理论基础

一、光影 物体呈现在人们眼前的时候,不同的受光面其明暗变化以及物体的影子。 1.什么是黑白灰 在美术中黑白灰指亮面、灰面、暗面,属于素描的三大面,主要体验一个物体的整体寿光过程。普遍存在于各种艺术和设计领域。黑白灰作品的出现&#x…

SCUM私人服务器搭建部署教程

以下是搭建SCUM私服的步骤: 1. 下载并安装SteamCMD。SteamCMD是一个命令行工具,用于从Steam下载和更新游戏服务器。你可以从Steam官网下载并安装它。 2. 创建一个文件夹来存储服务器文件。在你的计算机上创建一个文件夹,用于存储SCUM服务器文…

Python源码:03turtle画一个奥运五环图

turtle 模块绘制一些基本图形,是 Python 标准库中的一个绘图模块,可以用于绘制各种图形,包括线条、多边形、圆形、文本等。 下面是用Python绘制奥运五环图的代码: import turtle # 设置画布大小 turtle.setup(600, 600) # 绘…

Android 开发转鸿蒙开发到底有多简单?

前言 相信各位搞安卓的同学多多少少都了解过鸿蒙了,有些一知半解而有些已经开始学习起来。那这个鸿蒙到底好不好搞?要不要搞? 安卓反正目前工作感觉不好找,即便是上海这样的大城市也难搞,人员挺饱和的。最近临近年关…

【python】使用pipenv创建虚拟环境进行打包

文章目录 一、pipenv 介绍二、快速上手使用pipenv2.1 安装pipenv2.2 创建虚拟环境2.3 激活环境2.4 虚拟环境中安装项目依赖包2.5 检查项目在虚拟环境中是否能正常运行2.6 打包项目2.7 删除虚拟环境 起因: 本地安装的模块太多,使用pyinstaller打包,会把许多无关模块打包进去&…