unittest----skip装饰器

Unittest自动化测试框架教程(三)——Python中测试用例跳过skip操作详解(附实例演示) 本文通过多个实例,详细解释了unittest中跳过操作的分类,跳过操作参数的导入,以及介绍了测试用例之间指定参数联动判断跳过的方法,尽情享用吧! 阅读详情

当测试用例写完后,有些模块有改动时候,会影响到部分用例的执行,这个时候我们希望暂时跳过这些用例。

或者前面某个功能运行失败了,后面的几个用例是依赖于这个功能的用例,如果第一步就失败了,后面的用例也就没必要去执行了,直接跳过就行,节省用例执行时间。

一、skip装饰器

skip装饰器一共有四个

   @unittest.skip(reason)

  • Unconditionally skip the decorated test. reason should describe why the test is being skipped.

    翻译:无条件跳过用例,reason是说明原因

  • @unittest.skipIf(condition, reason)

  • Skip the decorated test if condition is true.

    翻译:condition为true的时候跳过

  • @unittest.skipUnless(condition, reason)

  • Skip the decorated test unless condition is true.

    翻译:condition为False的时候跳过

  • @unittest.expectedFailure

  • Mark the test as an expected failure. If the test fails when run, the test is not counted as a failure.

    翻译:断言的时候跳过(暂时不知道有啥用,没看懂,貌似断言失败,也变成用例pass了。)

 

二、实例介绍

在默认情况下,unittest 会自动测试每一个测试用例(以 test 开头的方法),但如果希望临时跳过某个测试用例,则可以通过如下两种方式来实现:

  1. 使用 skipXxx 装饰器来跳过测试用例。unittest 一共提供了 3 个装饰器,分别是 @unittest.skip(reason)、@unittest.skipIf(condition, reason) 和 @unittest.skipUnless(condition, reason)。其中 skip 代表无条件跳过,skipIf 代表当 condition 为 True 时跳过;skipUnless 代表当 condition 为 False 时跳过。
  2. 使用TestCase 的 skipTest() 方法来跳过测试用例。


下面程序示范了使用 @unittest.skip 装饰器来跳过测试用例(skip_test.py):


 
  1. import unittest
  2.  
  3. from hello import *
  4.  
  5. class TestHello(unittest.TestCase):
  6. # 测试say_hello函数
  7. def test_say_hello(self):
  8. self.assertEqual(say_hello() , "Hello World.")
  9. # 测试add函数
  10. @unittest.skip('临时跳过test_add')
  11. def test_add(self):
  12. self.assertEqual(add(3, 4) , 7)
  13. self.assertEqual(add(0, 4) , 4)
  14. self.assertEqual(add(-3, 0) , -3)

第 10 行代码使用 @unittest.skip 装饰器跳过了 test_add() 测试方法。使用如下命令来运行该测试程序:

python -m unittest skip_test.py

可以看到如下输出结果:

s.
----------------------------------------------------------------------
Ran 2 tests in 0.000s

OK (skipped=1)

在上面输出结果的第一行可以看到 s.,这表明程序运行了两个测试用例,s 代表跳过了第一个测试用例,点(.)代表第二个测试用例通过。

此外,程序也可以使用 TestCase 的 skipTest() 方法跳过测试用例。例如,如下程序示范了使用 skipTest() 方法来跳过测试用例(skip_test1.py):


 
  1. import unittest
  2.  
  3. from hello import *
  4.  
  5. class TestHello(unittest.TestCase):
  6. # 测试say_hello函数
  7. def test_say_hello(self):
  8. self.assertEqual(say_hello() , "Hello World.")
  9. # 测试add函数
  10. def test_add(self):
  11. self.skipTest('临时跳过test_add')
  12. self.assertEqual(add(3, 4) , 7)
  13. self.assertEqual(add(0, 4) , 4)
  14. self.assertEqual(add(-3, 0) , -3)

第 11 行代码使用 self.skipTest() 方法跳过了测试方法(test_add())。使用如下命令来运行该测试程序:

python -m unittest -v skip_test1.py

上面命令使用了 -v 选项来生成更详细的测试报告。运行上面命令,可以看到如下输出结果:

test_add (skip_test2.TestHello) ... skipped '临时跳过test_add'
test_say_hello (skip_test2.TestHello) ... ok

----------------------------------------------------------------------
Ran 2 tests in 0.000s

OK (skipped=1)

从上面的输出结果可以看到,unittest 测试跳过了 test_add() 方法,并显示了跳过的原因:'临时跳过test_add'(如果不使用 -v 选项,将不会输出该原因)。

6.unittest单元测试框架 单元测试对技术要求很高,但用单元测试框架做单元测试却十分简单,而且单元测试框架不仅可以用来做单元测试,它还适用于不同类型的“自动化”测试。 它提供了以下功能: 提供测试用例组织和执行 定义一条测试用例,灵活地控制测试用例的执行等 提供丰富的断言方法 进行功能测试时,测试用例需要有预期结果。当测试用例的执行结果与预期结果不一致时,判定测试用例失败。在自动化测试中,通过“断言”来判定测试用例执行成功与否。一般单元测试框架会提供丰富的断言方法。例如,判断相等/不相等、包含/不包含、True/False 等。 提 阅读详情

相关推荐

unittest教程__skip跳过用例执行(3)

在执行测试用例时,有时候有些用例是不需要执行的,比如版本迭代用例弃用,测试周期短只需要执行优先级高的用例,那我们怎么办呢?那下次执行时如果又需要执行这些用例时,又把它补回来?这样操作就太麻烦了,我们可以使用unittest提供的一些跳过指定用例的方法来规避这些问题。以下是我收集到的比较好的学习教程资源,虽然不是什么很值钱的东西,如果你刚好需要,可以留言【777】直接拿走就好了。最后祝大家早日达到测试的天花板!

GDYY3721的博客 404

UnitTest自动化测试框架中skip的用法

本文详细介绍了unittest自动化测试框架中skip的用法

redrose2100的博客 2660

unittest 中用于 skip 跳过 test method, test class,的相关装饰器

可以使用unitest.skip装饰器族跳过test method或者test class,这些装饰器包括: ① @unittest.skip(reason):无条件跳过测试,reason描述为什么跳过测试 ② @unittest.skipif(conditition,reason):condititon为true时跳过测试 ③ @unittest.skipunless(condition,r

HeatDeath的博客 5754

单元测试二 unitest的skip语句

1.skip语句类型如下: @unittest.skip(原因) 无条件跳过装饰测试。原因应该描述为什么要跳过测试。 @unittest.skipIf(条件,原因) 如果条件为真,则跳过装饰测试。 @unittest.skipUnless(条件,原因) 除非条件为真,否则跳过修饰测试。 @unittest.expectedFailure 将测试标记为预期的失败或错误。如果测试失败或测试功能本身出错(而不是测试夹具方法之一),那么它将被认为是成功的。如果测试通过,将被视为失败。 异常un..

shanmu0737的博客 1104

unittest框架用法

一.unittest的四大组件 1.TestCase: 测试用例,通过继承unittest.TestCase,来实现用例的继承,在Unittest中,测试用例都是通过test来识别的。 2.TestSuite: 用来组装测试用例 - addTest 一个功能的验证往往需要多个测试用例 3.TestRunner: 运行器,通过TextTestRunner类提供的run()方法来执行test suite/test case,一般通过runner来调试unittest.main()运行所有内容。

a_6701998890的博客 1293

【8周通关Python-游戏测试工程师 】303 unittest装饰器+钩子方法

本文介绍了Python unittest框架的两大高级特性:装饰器和钩子方法。装饰器(@skip/@expectedFailure)用于灵活控制测试用例执行策略,适用于游戏功能未开发或已知bug的场景。钩子方法(setUp/tearDown)实现用例前后置处理,解决测试数据冗余和环境残留问题。通过游戏登录测试案例,展示了如何优化测试用例结构,使其更独立、易维护。这些特性能有效提升游戏自动化测试效率,是测试工程师必备的核心技能。

u013625540的博客 1182

Unittest Skip装饰器详解

一、Skip装饰器的作用 在测试用例中如果想跳过某些用例进行其他的用例的执行,可以使用skip装饰器来实现 二、Skip装饰器的例子 import unittest class Test(unittest.TestCase): def setUp(self): pass @unittest.skip("无条件跳过") def test_1(self): print(1111) # 第一个条件返回值为true时 跳过执行 ,第二个参数为说

SKY_PLA的博客 4929

实验六 有源滤波器

实验六 有源滤波器一、实验目的二、仪器及设备三、预习要求画出三个电路的幅频特性曲线。四、实验内容l.低通滤波电路2.高通滤波电路3.带阻滤波电路(1)实测电路中心频率。(2)以实测中心频率为中心,测出电路幅频特性。五、实验报告六,仿真图:图 1 低通滤波器仿真图图 2 高通滤波器仿真图图 3 带阻滤波电路仿真图 一、实验目的 1.熟悉有源滤波电路构成及其特性。 2.学会测量有源滤波电路幅频特性。 二、仪器及设备 1.示波器 2.信号发生器 三、预习要求 1.预习教材有关滤波电路

胡毛毛的博客 1万+

unittest.skip()装饰器

unittest unittest.skip():装饰器,当运行用例时,有些用例可能不想执行等,可用装饰器暂时屏蔽该条测试用例。一种常见的用法就是比如说想调试某一个测试用例,想先屏蔽其他用例就可以用装饰器屏蔽。 @unittest.skip(reason):skip(reason)装饰器:无条件跳过装饰的测试,并说明跳过测试的原因。 @unittest.skipIf(reason):skipIf(condition,reason)装饰器:条件为真时,跳过装饰的测试,并说明跳过测试的原因。 @un..

wqchibingshaonian的博客 526

GPT注册与使用全流程详解:从零到一的实战指南

本文详细介绍了GPT的注册与使用全流程,从认识GPT作为智能对话助手开始,到注册前的设备与环境准备、手把手完成账号注册、首次使用指南以及进阶使用技巧。文章还涵盖了安全使用与注意事项,帮助用户从零开始高效利用GPT提升工作效率和内容创作能力。

weixin_33843409的博客 388

在Ansys Mechanical中对磨损进行建模

在有限元分析中,磨损是通过移动接触表面上的节点来复制材料侵蚀来建模的。仿真迭代更新几何,并在每次更新后重新计算平衡,使过程成为非线性的。Ansys使用将压力、相对运动和材料阻力与表面损失联系起来的经验定律来处理连续介质尺度的磨损。要在Ansys Mechanical中激活磨损建模,必须使用TB,WEAR命令定义专用材料模型。该命令与 TBDATA 相结合,允许用户输入与磨损相关的材料常数,以控制磨损的计算方式以及在接触表面上的应用方式。

jkh920184196的博客 2629

python+selenium2学习笔记unittest-04装饰器skip用法

在运行测试用例时,有时需跳过或判断用例时,可以用装饰器来实现 主要的几个方法就是下面的这几种 import unittest class test(unittest.TestCase): def setUp(self): pass @unittest.skip('跳过') def test_01(self): print("直接跳过"...

u013434475的博客 952

【G4基础03】2.3 How to Specify Materials in the Detector

定义探测器材料

adelall的博客 489

14. 原生测试框架Unittest的skip、skipIf、skipUnless的使用

Unittest框架提供了skip、skipIf和skipUnless三个装饰器,用于控制测试用例的跳过机制。@skip无条件跳过测试,适用于维护中或未完成的用例;@skipIf在条件为True时跳过,常用于环境依赖检查;@skipUnless在条件为False时跳过,适合平台特性验证。这些装饰器可以在类级别或方法级别使用,且支持多层条件控制,优先级从类到方法递减。最佳实践建议使用条件跳过而非手动跳过,并优化跳过报告输出。此外,动态跳过机制和跨模块条件复用进一步增强了测试灵活性。通过这些装饰器,开发者可以更

Tom的专栏 1327

数理金融学笔记 Chap2 二叉树模型Binomial

2 二叉树模型与期权定价 Binomial Model and Option Pricing 文章目录2 二叉树模型与期权定价 Binomial Model and Option Pricing单期二叉树模型 One-step Binomial Model风险与无风险资产单期二叉树模型与无套利条件无套利定价 No Arbitrage Pricing风险中性定价 Risk Neutral PricingDelta套期保值 Delta Hedging两期二叉树模型 Two-Step Binomial Model

weixin_66831131的博客 2387

使用Kolla部署多节点Rocky版本OpenStack

openstack命令行客户端使用,post-deploy会在 /etc/kolla/目录下生成文件admin-openrc.sh。每次使用openstack命令时执行source /etc/kolla/admin-openrc.sh(manager节点执行)source /etc/kolla/admin-openrc.sh (将文件内容复制到/etc/profile中,即可一直生效)3.2.2 开始安装kolla-ansible,要带上--ignore-installed PyYAML,否则可能会报错。

gyc1206的博客 1926

Unittest框架介绍及常用组件

Unittest框架介绍及常用组件

beichanbb的博客 1103

【图像拼接】论文精读:As-Rigid-As-Possible Shape Manipulation(ARAP)

文章目录前言1.摘要2.算法的总体流程总结 前言 图像变形算法 1.摘要 论文提出了一个二维图形互动系统。图形是建立在三角形网格上的,用户只需移动几个网格顶点(限制顶点),系统通过最小化每个三角形的误差计算网格剩余顶点(自由顶点)的位置。 算法分两步: 适当旋转每个三角形。 调整大小。 关键是使用二次度量误差将最小化问题转换成线性方程组,然后再解这个方程组。 刚性形状变形是很难的,论文的研究使其变得简单。 2.算法的总体流程 总的流程分三步: 将图形用三角形网格覆盖 选择三个点(限制顶点) 操纵限

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 15万+

python 修饰符和装饰器_Python unittest装饰器实现原理及代码

1、前言前面讲到unittest里面setUp可以在每次执行用例前执行,这样有效的减少了代码量,但是有个弊端,比如打开浏览器操作,每次执行用例时候都会重新打开,这样就会浪费很多时间。于是就想是不是可以只打开一次浏览器,执行完用例再关闭呢?这就需要用到装饰器(@classmethod)来解决了。2、@classmethod 装饰器中的 setUpClass() 和 tearDownClass() 与...

weixin_42511098的博客 282

Android 15.0 添加自定义服务,并生成jar给第三方app调用

在15.0系统ROM产品定制化开发中,由于需要新增加自定义的功能,所以要增加自定义服务,而app上层通过调用自定义服务,来调用相应的功能,所以系统需要先生成jar,然后生成jar 给上层app调用,接下来就来分析实现的步骤,然后来实现相关的功能 从而来实现所需要的功能

安卓兼职framework和app工程师的博客 668

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

python跳过代码执行_Selenium2+python自动化70-unittest之跳过用例(skip)

前言当测试用例写完后,有些模块有改动时候,会影响到部分用例的执行,这个时候我们希望暂时跳过这些用例。或者前面某个功能运行失败了,后面的几个用例是依赖于这个功能的用例,如果第一步就失败了,后面的用例也就没必要去执行了,直接跳过就行,节省用例执行时间。一、skip装饰器skip装饰器一共有四个@unittest.skip(reason)Unconditionally skip the decorate...

weixin_40009099的博客 532

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

unittest篇5-用例的跳过skip

1、前言 上一篇博客,我们介绍了测试脚手架,也就是当我们在实际的测试中, 我们可能有些参数或者有些用例case只需要执行一次,那么我们也只能在用例执行一次,不然重复执行,会导致数据覆盖等情况。我们可以采取测试脚手架来完成对应的操作。 今天这篇博客我们来介绍一下,用例的跳过。 2、跳过 在运行测试中,有时需要直接跳过某些测试用例,或者当某些测试用例符合某个条件时跳过测试,又或者直接将测试用例设置失败状态。unittest提供了一些实现这些需求的装饰器。 2.1 unittest.skip(reason) 1、

m0_47127594的博客 1163

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

python装饰器的原理_Python unittest装饰器实现原理及代码

1、前言前面讲到unittest里面setUp可以在每次执行用例前执行,这样有效的减少了代码量,但是有个弊端,比如打开浏览器操作,每次执行用例时候都会重新打开,这样就会浪费很多时间。于是就想是不是可以只打开一次浏览器,执行完用例再关闭呢?这就需要用到装饰器(@classmethod)来解决了。2、@classmethod 装饰器中的 setUpClass() 和 tearDownClass() 与...

weixin_39861498的博客 83

unittest安装教程_unittest模块使用方法

unittest模块常用属性1、unittest.TestCase类:所有的测试用例类继承的基类定义一个测试用例类,需要继承TestCase,比如:class BaiduTest(unittest.TestCase):2、unittest.main():使用这个可以方便的将一个测试模块变为可直接运行的测试脚本,main()方法使用TestLoader类来搜索所有包含在该模块中以test命名开头...

weixin_33751873的博客 2335

python3 unittest 断言_unittest断言的使用

### 断言使用* 我们可以直接在测试用例里面添加unittest框架自带的断言(也就相当于判断),断言方法提供了测试结果是True还是False,所有的断言方法都有一个msg参数,如果指定msg参数的值,则将该信息作为失败的错误信息返回;* 如果断言失败则抛出一个AssertionError,并标识该测试为失败状态;如果成功,则标识该测试为成功状态;如果异常,则当做错误来处理;先来看一个...

weixin_31439191的博客 391

selenium-Python之unittest(三)

unittest之skipskip装饰器一共有三个 : unittest.skip(reason)—无条件跳过用例,用例不会被执行; unittest.skipIf(condition, reason)—条件为真时,跳过该用例,用例不会被执行; unittest.skipUnless(condition, reason)—条件为假时,跳过该用例,用例不被执行; 代码示例如下:#encoding=ut

weixin_39568072的博客 394
上一篇: Appium---Python提示:TypeError: 'NoneType' object is not callable
下一篇: Android内存监控----自动化
java2013liu
博客等级 码龄14年 141粉丝 61原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值