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

Pytest系列-内置标签skip和skipif 跳过测试用例的详细使用(5)

简介

  • skip和skipif,见名知意就是跳过测试,主要用于不想执行的代码,标记后,标记的代码不执行。
  • 希望满足某些条件才执行某些测试用例,否则pytest会跳过运行该测试用例
  • 实际常见场景:根据平台不同执行测试、跳过依赖、功能未完成预期不能执行的测试

用例跳过方式及实例

1、标记在函数方法上

@pytest.mark.skip(reason="不执行函数方法")
def test_demo2():print("类外面的测试用例2")

2、标记在类中的函数方法上

class TestStudy:def test_one(self):print("类测试用例1")@pytest.mark.skip(reason="不执行类的函数方法")def test_two(self):print("类测试用例2")

3、标记在类上

@pytest.mark.skip(reason="不想执行")
class Skip:def test_one(self):print("%% 不会执行 %%")

1、2、3整体参考示例

import testimport pytest@pytest.fixture(autouse=True)
def login():print("---登录---")def test_demo1():print("类外面的测试用例1")@pytest.mark.skip(reason="不执行函数方法")
def test_demo2():print("类外面的测试用例2")class TestStudy:def test_one(self):print("类测试用例1")@pytest.mark.skip(reason="不执行类的函数方法")def test_two(self):print("类测试用例2")@pytest.mark.skip(reason="不想执行")
class Skip:def test_one(self):print("%% 不会执行 %%")if __name__ == '__main__':pytest.main()

执行结果:
在这里插入图片描述
小结:

  • @pytest.mark.skip 可以加在函数上,类上,类方法上
  • 如果加在类上面,类里面的所有测试用例都不会执行

以上小案例都是针对:整个测试用例方法跳过执行,下面是 在测试用例执行期间强制跳过的小栗子

4、pytest.skip()函数基础使用

作用:在测试用例执行期间强制跳过不再执行剩余内容
类似:在Python的循环里面,满足某些条件则break 跳出循环

以简单的for循环为例,执行到第三个的时候,跳出,参考示例

def test_function():for i in range(50):print(f"输出第 【{i}】个数")if i == 6:pytest.skip("我跑不动了,不输出了")

执行结果
在这里插入图片描述

5、在模块级别跳过测试

语法:pytest.skip(msg="",allow_module_level=False),当 allow_module_level=True 时,可以设置在模块级别跳过整个模块,示例代码如下:

import sys
import pytestif sys.platform.startswith("win"):pytest.skip("skipping windows-only tests",allow_module_level=True)@pytest.fixture(autouse=True)
def login():print("--- 登录 ---")def test_demo():print("--- 测试用例 ---")

执行结果
在这里插入图片描述

6、希望有条件地跳过某些测试用例

作用:希望有条件地跳过某些测试用例
语法:@pytest.mark.skipif(condition, reason="")
注意:condition需要返回True才会跳过

示例代码如下:

class TestStudy:def test_one(self):print("类测试用例1")# @pytest.mark.skipif(sys.platform == "win"),reason="windows系统 不执行")
@pytest.mark.skipif(sys.platform.startswith("win"),reason="windows系统 不执行")def test_two(self):print("类测试用例2")

执行结果
在这里插入图片描述

7、跳过标记的使用

好处:

  • 方便用例的统一管理维护
  • 在不同模块之间共享这个标记变量
  • 若有多个模块的测试用例需要用到相同的 skip 或 skipif ,可以用一个单独的文件去管理这些通用标记,然后适用于整个测试用例集

需要将 pytest.mark.skippytest.mark.skipif 赋值给一个标记变量,用变量(注解变量)进行标记

#标记
skipmark = pytest.mark.skip(reason="不能在window上运行=====")
skipifmark = pytest.mark.skipif(sys.platform == 'win32', reason="不能在window上运行啦啦啦=====")@skipmark
class TestSkip_Mark(object):@skipifmarkdef test_function(self):print("测试标记")def test_def(self):print("测试标记")@skipmark
def test_skip():print("测试标记")

执行结果

在这里插入图片描述

8、缺少某些导入跳过的测试

作用:如果缺少某些导入,则跳过模块中的所有测试
语法pytest.importorskip( modname: str, minversion: Optional[str] = None, reason: Optional[str] = None )

参数列表

  • modname:模块名
  • minversion:版本号
  • reason:跳过原因,默认不给也行
# 标记
importskip = pytest.importorskip("importskip", minversion="0.3",reason="不能在 windows系统 执行")@importskip
def test_demo():print("测试标记")

执行结果
在这里插入图片描述

执行结果一:如果找不到module

Skipped: could not import 'pexpect': No module named 'pexpect'
collected 0 items / 1 skipped

执行结果一:如果版本对应不上

Skipped: module 'sys' has __version__ None, required is: '0.3'
collected 0 items / 1 skippe

参考文章

相关文章:

Pytest系列-内置标签skip和skipif 跳过测试用例的详细使用(5)

简介 skip和skipif,见名知意就是跳过测试,主要用于不想执行的代码,标记后,标记的代码不执行。希望满足某些条件才执行某些测试用例,否则pytest会跳过运行该测试用例实际常见场景:根据平台不同执行测试、跳…...

华为云云耀云服务器L实例评测|docker 常用操作命令

文章目录 写在前面云耀云服务器L实例与ECS的购买和配置区别 1、管理命令2、帮助命令3、镜像命令4、容器命令4.1 查看容器4.2 创建容器 实例 写在前面 ​ 前面讲到了docker环境的安装,这是我们可以直接打开远程连接华为云云耀云服务器L实例,直接连接公网…...

RJ45网络信号浪涌保护器解决方案

RJ45网络信号浪涌保护器是一种用于保护网络设备免受雷击或其他高压电流干扰的装置,它可以有效地吸收和释放信号线路上的过电压,从而避免设备损坏或数据丢失。 RJ45信号浪涌保护器的应用领域和施工方案如下: 地凯科技RJ45网络信号浪涌保护器…...

SoC性能指标ARM内核运算能力

自动驾驶芯片常用的性能评价指标:TOPS,DMIPS,GFLOPS分别说的是啥? TOPS Tera Operation Per Second,表示每秒钟可以进行的操作数量,用于衡量自动驾驶的算力。 众所周知,汽车上最常用的传感器是摄像头,而与之对应的计…...

注册小鲸鱼88888专用网站

点击注册充值即可 高效不限速,不限设备 注意这里的地址并没有错,只是你需要想办法正确能进入就行,懂的大佬一定知道用一定的方法访问的。...

GitHub平台 Bookget操作

以bookget为例,熟悉github平台。 https://github.com/deweizhu/bookget 选择该界面中的“Wiki”,右侧边栏中是文章的结构大纲。 下载bookget软件。 依照说明,安装bookget环境。...

Ag-grid实现列拖拽,将列顺序存储到本地(localStorage),加载页面时根据本地保存的顺序修改列表头顺序,避免刷新页面后列顺序恢复原样

Ag-grid实现列拖拽,将列顺序存储到本地(localStorage),加载页面时根据本地保存的顺序修改列表头顺序,避免刷新页面后列顺序恢复原样 今天在使用 ag-grid 的时候,遇到一个需求,ag-grid 列表头的信息拖拽后,…...

常用的linux命令简要说明以及命令全名理解

以下是一些常用的Linux命令及其全名: ls(List):列出目录中的文件和子目录。cd(Change Directory):切换当前工作目录。pwd(Print Working Directory):显示当前…...

《Python趣味工具》——自制emoji3

今日目标 在上次,我们绘制了静态的emoji图。并且总结了turtle中的常用函数。 本次我们将尝试制作一个动态的emoji,让你的表情包动起来! 文章目录 一、动画原理:二、制作动画:1. 修改eyes_black()函数:2. 绘…...

怎么把录音转换成mp3格式

怎么把录音转换成mp3格式?在我们平时的学习和工作中,经常会使用设备进行录音(例如电脑、手机和录音笔等)。然而,这些录音文件往往存在各种不同的格式,不同手机不同品牌的录音笔得到的录音文件都不相同&…...

基于遗传算法改进的BP神经网络图像分割,BP神经网络基本原理,遗传算法流程,

目录 BP神经网络的原理 BP神经网络的定义 BP神经网络的基本结构 BP神经网络的神经元 BP神经网络的激活函数, BP神经网络的传递函数 遗传算法的原理及步骤 基于遗传算法改进BP神经网络的二分类 代码 效果图 结果分析 展望 完整代码和数据下载:遗传算法优化BP神经网络的图像分…...

uni-app 之 文字分两行显示超出用省略号表示

uni-app 之 文字分两行显示超出用省略号表示 vue 将一大串文字分两行显示超出用省略号表示 通过css设置文字强制不换行超出用省略号表示: {white-space: nowrap; 文本强制不换行;text-overflow:ellipsis; 文本溢出显示省略号;overflow:hidden; 溢出的部…...

stl_stack_queue的使用及OJ题

stl_stack_queue的使用及OJ题 stl_stack_queue的使用相关OJ题 stl_stack_queue的使用 #include <iostream> #include <stack> #include <queue> using namespace std;void test_stack() {stack<int> st;st.push(1);st.push(2);st.push(3);st.push(4);…...

Linux下的Docker安装,以Ubuntu为例

Docker是一种流行的容器化平台&#xff0c;它能够简化应用程序的部署和管理。 Docker安装 1、检查卸载老版本Docker&#xff08;为保证安装正确&#xff0c;尽量在安装前先进行一次卸载&#xff09; apt-get remove docker docker-engine docker.io containerd runc 2、Dock…...

【深度学习 | LSTM】解开LSTM的秘密:门控机制如何控制信息流

&#x1f935;‍♂️ 个人主页: AI_magician &#x1f4e1;主页地址&#xff1a; 作者简介&#xff1a;CSDN内容合伙人&#xff0c;全栈领域优质创作者。 &#x1f468;‍&#x1f4bb;景愿&#xff1a;旨在于能和更多的热爱计算机的伙伴一起成长&#xff01;&#xff01;&…...

解决npm install遇到的问题:Error while executing:

目录 一、遇到问题 二、解决办法 方法一 方法二 方法三 方法四 一、遇到问题 npm ERR! Error while executing: npm ERR! D:\IT_base\git\Git\cmd\git.EXE ls-remote -h -t ssh://gitgithub.com/sohee-lee7/Squire.git npm ERR! npm ERR! fatal: unable to access ht…...

常见的内网穿透工具有 ngrok/ localtunnel/ frp

1.内网穿透工具的工作原理 内网穿透工具的工作原理是通过在本地网络和公共网络之间建立一个通道&#xff0c;将公网流量转发到本地网络中的服务。这样&#xff0c;在没有公网 IP 或无法直接访问的情况下&#xff0c;用户可以通过公网访问本地网络中的服务。 2. 常见的内网穿透…...

dvwa命令执行漏洞分析

dvwa靶场命令执⾏漏洞 high难度的源码&#xff1a; $target trim($_REQUEST[ ‘ip’ ]);是一个接收id值的变量 array_keys()函数功能是返回包含原数组中所有键名的一个新数组。 str_replace() 函数如下&#xff0c;把字符串 “Hello world!” 中的字符 “world” 替换为 “S…...

今年嵌入式行情怎么样?

今年嵌入式行情怎么样&#xff1f; 嵌入式技术今年可以说是IT领域中最炙手可热的之一。随着中年危机和内卷问题的出现&#xff0c;越来越多的互联网从业者将目光投向了嵌入式领域。国内的嵌入式市场一直受终端需求变化的影响而波动&#xff0c;但随着国内产业自主化的发展趋势…...

Unity WebGL 编译 报错: emcc2: error: ‘*‘ failed: [WinError 2] ϵͳ�Ҳ���ָ�����ļ���解决办法

文章目录 错误日志可能的原因及解决办法:导出路径不能有中文系统名(win)含有中文, 修改环境变量Temp和Tmp, 如下图:真正的原因: 杀毒软件删除了部分wasm相关文件,如: 错误日志 Building Library\Bee\artifacts\WebGL\build\debug_WebGL_wasm\build.js failed with output: emc…...

4个强力技巧:Squirrel-RIFE开源工具视频增强全指南

4个强力技巧&#xff1a;Squirrel-RIFE开源工具视频增强全指南 【免费下载链接】Squirrel-RIFE 项目地址: https://gitcode.com/gh_mirrors/sq/Squirrel-RIFE Squirrel-RIFE&#xff08;简称SVFI&#xff09;是一款基于AI技术的开源视频补帧工具&#xff0c;通过在原始…...

3个关键技巧彻底解决Photoshop WebP格式兼容性问题

3个关键技巧彻底解决Photoshop WebP格式兼容性问题 【免费下载链接】WebPShop Photoshop plug-in for opening and saving WebP images 项目地址: https://gitcode.com/gh_mirrors/we/WebPShop 在当今Web开发与设计领域&#xff0c;WebP格式已成为图像优化的黄金标准&am…...

Unity Figma Bridge终极指南:3步实现设计到游戏的完美转换 [特殊字符]

Unity Figma Bridge终极指南&#xff1a;3步实现设计到游戏的完美转换 &#x1f680; 【免费下载链接】UnityFigmaBridge Easily bring your Figma Documents, Components, Assets and Prototypes to Unity 项目地址: https://gitcode.com/gh_mirrors/un/UnityFigmaBridge …...

KindEditor富文本编辑器:轻量级网页内容创作解决方案

KindEditor富文本编辑器&#xff1a;轻量级网页内容创作解决方案 【免费下载链接】kindeditor WYSIWYG HTML editor 项目地址: https://gitcode.com/gh_mirrors/ki/kindeditor 在当今Web开发中&#xff0c;内容编辑功能是许多网站的核心需求&#xff0c;但开发者常常面临…...

导师推荐!盘点2026年最受欢迎的AI论文工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年AI论文工具全面升级&#xff0c;实测提速超50%&#xff0c;覆盖选题、文献分析、内容生成、降重润色、格式排版等全流程场景&#xff0c;真正帮你高效搞定论文。 一、全流程王者&#xff1a;一站式搞定论文全链路&#xff08;…...

python小白福音:跟着快马生成的图文指南,轻松搞定vscode环境配置

作为一个刚开始学Python的小白&#xff0c;第一次打开VSCode时完全不知道从哪里下手。各种专业术语看得一头雾水&#xff0c;网上的教程要么太简单要么太复杂。直到发现了InsCode(快马)平台&#xff0c;它帮我生成了这份超级详细的配置指南&#xff0c;现在终于能愉快地写代码了…...

FPGA音频播放器避坑指南:WM8731 I2C配置与左对齐时序的那些坑

FPGA音频播放器避坑指南&#xff1a;WM8731 I2C配置与左对齐时序的那些坑 第一次听到自己设计的FPGA音频播放器发出刺耳的噪音时&#xff0c;我盯着示波器上扭曲的波形陷入了沉思。作为嵌入式开发者&#xff0c;我们总在数字与模拟的交界处行走&#xff0c;而WM8731这颗看似简单…...

大数据核心知识全解(零基础到Hadoop专家路线)【20260324】001篇

文章目录 大数据核心知识全解(零基础到Hadoop专家路线) 一、为什么会出现大数据?(本质原因) 1. 数据来源爆炸 2. 传统技术扛不住 3. 需求倒逼 二、CNCF 是什么?(云原生核心组织) 它和大数据的关系 三、为什么 Hadoop 会流行?(3个核心原因) 1. 它解决了当时最痛的问题…...

60个AI核心概念,不背定义,全落到工作场景!老王手把手教你建知识库、搭Agent,附原型库+PRD模板

&#x1f4a1; Chunking 文档分块 你的 RAG 知识库上线了&#xff0c;用户问一个具体问题&#xff0c;系统返回了一段莫名其妙的内容。一查发现&#xff0c;检索到的文档片段被切在了一个句子中间&#xff0c;上半句话在一个块里&#xff0c;下半句在另一个块里。模型看到半句…...

3步掌握开源卡牌编辑器:批量制作桌游卡牌的终极指南

3步掌握开源卡牌编辑器&#xff1a;批量制作桌游卡牌的终极指南 【免费下载链接】CardEditor 一款专为桌游设计师开发的批处理数值填入卡牌生成器/A card batch generator specially developed for board game designers 项目地址: https://gitcode.com/gh_mirrors/ca/CardEd…...