Pytest(七)-skip、skipif跳过用例 一.前言1.pytest.mark.skip可以标记无法在某些平台上运行的测试功能或者您希望失败的测试功能2.希望满足某些条件才执行某些测试用例否则pytest会跳过运行该测试用例3.实际常见场景跳过非Windows平台上的仅Windows测试或者跳过依赖于当前不可用的外部资源(例如数据库)的测试二.pytest.mark.skip1.跳过执行测试用例有可选参数reason跳过的原因会在执行结果中打印# -*- coding: utf-8 -*-importpytestpytest.fixture(autouseTrue)deflogin():print(登录)deftest_case01():print(我是测试用例11111)pytest.mark.skip(reason不执行该用例因为没写好)deftest_case02():print(我是测试用例22222)classTest1:deftest_1(self):print(%% 我是类测试用例1111 %%)pytest.mark.skip(reason不想执行)deftest_2(self):print(%% 我是类测试用例2222 %%)pytest.mark.skip(reason类也可以跳过不执行)classTestSkip:deftest_1(self):print(%% 不会执行 %%)1.1.执行结果2.知识点2.1.pytest.mark.skip可以加在函数上类上类方法上2.2.如果加在类上面类里面的所有测试用例都不会执行2.3.以上小案例都是针对整个测试用例方法跳过执行如果想在测试用例执行期间跳过不继续往下执行呢三.pytest.skip()函数基础使用1.作用在测试用例执行期间强制跳过不再执行剩余内容2.类似在Python的循环里面满足某些条件则break跳出循环deftest_function():n1whileTrue:print(f这是我第{n}条用例)n1ifn5:pytest.skip(我跑五次了不跑了)3.执行结果四.pytest.skip(msg“”,allow_module_levelFalse)1.当allow_module_levelTrue时可以设置在模块级别跳过整个模块# -*- coding: utf-8 -*-importsysimportpytestifsys.platform.startswith(win):pytest.skip(skipping windows-only tests,allow_module_levelTrue)pytest.fixture(autouseTrue)deflogin():print(登录)deftest_case01():print(我是测试用例11111)1.1.执行结果collecting...Skipped:skipping windows-only tests collected0items/1skipped1skippedin0.15s五.pytest.mark.skipif(condition, reason“”)1.作用希望有条件地跳过某些测试用例2.注意condition需要返回True才会跳过pytest.mark.skipif(sys.platformwin32,reasondoes not run on windows)classTestSkipIf(object):deftest_function(self):print(不能在window上运行)3.执行结果collecting...collected1item 07skip_sipif.py::TestSkipIf::test_function SKIPPED[100%]Skipped:doesnotrun on windows1skippedin0.04s六.跳过标记1.可以将pytest.mark.skip和pytest.mark.skipif赋值给一个标记变量2.在不同模块之间共享这个标记变量3.若有多个模块的测试用例需要用到相同的skip或skipif 可以用一个单独的文件去管理这些通用标记然后适用于整个测试用例集# 标记skipmarkpytest.mark.skip(reason不能在window上运行)skipifmarkpytest.mark.skipif(sys.platformwin32,reason不能在window上运行啦啦啦)skipmarkclassTestSkip_Mark(object):skipifmarkdeftest_function(self):print(测试标记)deftest_def(self):print(测试标记)skipmarkdeftest_skip():print(测试标记)4.执行结果collecting...collected3items 07skip_sipif.py::TestSkip_Mark::test_function SKIPPED[33%]Skipped:不能在window上运行啦啦啦07skip_sipif.py::TestSkip_Mark::test_def SKIPPED[66%]Skipped:不能在window上运行07skip_sipif.py::test_skip SKIPPED[100%]Skipped:不能在window上运行3skippedin0.04s七.pytest.importorskip( modname: str, minversion: Optional[str] None, reason: Optional[str] None )1.作用如果缺少某些导入则跳过模块中的所有测试2.参数列表2.1.modname模块名2.2.minversion版本号2.3.reason跳过原因默认不给也行pexpectpytest.importorskip(pexpect,minversion0.3)pexpectdeftest_import():print(test)3.执行结果一如果找不到moduleSkipped:couldnotimportpexpect:No module namedpexpectcollected0items/1skipped4.执行结果一如果版本对应不上Skipped:modulesyshas __version__None,requiredis:0.3collected0items/1skipped

相关新闻

最新新闻

C#核心(持续更新中)

C#核心(持续更新中)

一、类和对象1、什么是类基本概念:具有相同特征具有相同行为一类事物的抽象类是对象的模板可以通过类创建出对象类的关键词 class 2、类申明在哪里类一般申明在namespace语句块中 3、类申明语法访问修饰符 class 类名 {//特征——成员变量//行为——成员方法//保护特…

2026/7/14 18:43:09
【兆易创新GD32H759I-EVAL开发板】图像处理加速器(IPA)的Alpha混合与图层叠加实战

【兆易创新GD32H759I-EVAL开发板】图像处理加速器(IPA)的Alpha混合与图层叠加实战

1. 认识GD32H759I-EVAL开发板的图像处理加速器(IPA)第一次拿到GD32H759I-EVAL开发板时,我就被它内置的图形处理加速器(IPA)吸引住了。这个硬件模块简直就是嵌入式GUI开发的"瑞士军刀",特别是做工…

2026/7/14 18:43:09
硬件工程师必读:从数据手册到可靠设计,TPS2062A/TPS2066A官方资源深度解析

硬件工程师必读:从数据手册到可靠设计,TPS2062A/TPS2066A官方资源深度解析

1. 从数据手册到可靠设计:TPS2062A/TPS2066A官方资源深度解析在硬件工程师的日常工作中,数据手册的地位堪比“圣经”。它远不止是一份参数列表,更是连接芯片设计者与应用工程师的桥梁,是确保设计从原理图走向稳定量产的关键。然而…

2026/7/14 18:43:09
SGM41518 I2C寄存器配置实战:从看门狗到安全充电的完整设计流程

SGM41518 I2C寄存器配置实战:从看门狗到安全充电的完整设计流程

1. SGM41518充电管理芯片概述SGM41518是圣邦微电子推出的一款高效降压型开关充电IC,采用WLCSP-2.02.4-30B封装,支持3.9V至13.5V的宽输入电压范围。这颗芯片在TWS耳机充电仓、智能手表等便携设备中应用广泛,主要得益于其三大核心优势&#xff…

2026/7/14 18:43:09
国际物联网卡流量池共享原理:100张卡共用10G流量怎么算账?

国际物联网卡流量池共享原理:100张卡共用10G流量怎么算账?

很多做海外IoT项目的企业,都会接触到物联卡流量池共享套餐。最常见的场景就是:100张设备卡,统一共享10G总流量。绝大多数人的误区是:100张卡10G,平均每张卡0.1G流量。这是完全错误的算账方式。也是很多企业后期出现流量…

2026/7/14 18:43:09
从代码异味视角重构Java外卖API聚合平台的冗余依赖与循环调用问题

从代码异味视角重构Java外卖API聚合平台的冗余依赖与循环调用问题

从代码异味视角重构Java外卖API聚合平台的冗余依赖与循环调用问题 在外卖CPS聚合平台的演进过程中,随着业务模块的不断拆分与合并,代码库中逐渐积累了大量的“代码异味”。其中,最致命的莫过于模块间的循环依赖和冗余调用。这不仅导致系统启…

2026/7/14 18:38:09

月新闻