Python单元测试--使用装饰器实现测试跳过和预期故障
Python单元测试unittest中提供了一下四种装饰器实现测试跳过和预期故障。(使用Python 2.7.13)
请查考Python手册中:
https://docs.python.org/dev/library/unittest.html
The following decorators implement test skipping and expected failures:
#以下装饰器实施测试跳过和预期故障:
-
@
unittest.
skip
(原因) -
Unconditionally skip the decorated test. reason should describe why the test is being skipped.
#无条件跳过装饰测试。 原因应该说明为什么要跳过测试。
-
@
unittest.
skipIf
(条件,原因) -
Skip the decorated test if condition is true.
#如果条件为真,跳过装饰测试。
-
@
unittest.
skipUnless
(条件,原因) -
Skip the decorated test unless condition is true.
# 跳过装饰的测试,除非条件是真的。
-
@
unittest.
expectedFailure
-
Mark the test as an expected failure. If the test fails when run, the test is not counted as a failure.
#将测试标记为预期的失败。 如果测试在运行时失败,则测试不会被视为失败。
(以上采用谷歌翻译,可能会有差异)
好了,写段代码看下,test.py ,使用的Eclipse
#coding:UTF-8import unittestfrom test.test_pprint import uniclass Test_ce(unittest.TestCase): a=16 b=10 @unittest.skip('无条件跳过') def test_ce1(self): self.assertEqual((self.a-self.b), 16) #判断是否相等 @unittest.skipIf(True==1, '条件为真则跳过') def test_ce_2(self): self.assertFalse(self.a==self.b) #判断是否为False @unittest.skipUnless(1==1, '条件为假则跳过') def test_ce_3(self): self.assertTrue(self.a>16) #判断是否为True @unittest.expectedFailure def test_ce_4(self): self.assertFalse(self.a==16) @unittest.expectedFailure def test_ce_5(self): self.assertFalse(self.a==15) if __name__ == '__main__': unittest.main()
好的,运行一下
1 ssFxu 2 ====================================================================== 3 FAIL: test_ce_3 (__main__.Test_ce) 4 ---------------------------------------------------------------------- 5 Traceback (most recent call last): 6 File "D:\Escplise\workspace\Pytest\src\test001\CE.py", line 20, in test_ce_3 7 self.assertTrue(self.a>16) 8 AssertionError: False is not true 9 10 ---------------------------------------------------------------------- 11 Ran 5 tests in 0.000s 12 13 FAILED (failures=1, skipped=2, expected failures=1, unexpected successes=1)
好的,我们对第1行代码进行分析:
s:全称是skipped(跳过)
s:条件为真,所以也是skipped(跳过)
F:条件为真,所以忽略装饰器,执行断言代码,显然是failures(失败)
x:断言结果显然是失败的,但是这是在我们意料之中,所以是expected failures(预期的失败)
u:断言结果显然是pass,但是我们预计可能不通过,所以是unexpected successes(意想不到的成功)
即第13行代码 所示 FAILED (failures=1, skipped=2, expected failures=1, unexpected successes=1)
转载于:https://www.cnblogs.com/yin-tao/p/7086581.html
Python单元测试--使用装饰器实现测试跳过和预期故障相关推荐
- python中的装饰器decorator
python中的装饰器 装饰器是为了解决以下描述的问题而产生的方法 我们在已有的函数代码的基础上,想要动态的为这个函数增加功能而又不改变原函数的代码 例如有三个函数: def f1(x):return ...
- python高级-闭包-装饰器
闭包内容: 匿名函数:能够完成简单的功能,传递这个函数的引用,只有功能 普通函数:能够完成复杂的功能,传递这个函数的引用,只有功能 闭包:能够完成较为复杂的功能,传递这个闭包中的函数以及数据,因此传递 ...
- Python学习之==装饰器
在Python中,装饰器和迭代器.生成器都是非常重要的高级函数. 在讲装饰器之前,我们先要学习以下三个内容: 一.函数的作用域 1.作用域介绍 Python中的作用域分为四种情况: L:local,局 ...
- python中tracer函数意思_浅析Python编写函数装饰器
本节主要介绍编写函数装饰器的相关内容. 跟踪调用 如下代码定义并应用一个函数装饰器,来统计对装饰的函数的调用次数,并且针对每一次调用打印跟踪信息. 这是一个通过类装饰的语法写成的装饰器,测试如下: 运 ...
- [转载]理解PYTHON中的装饰器
[翻译]理解PYTHON中的装饰器 来源stackoverflow上的问题 链接 python的函数是对象 要理解装饰器,首先,你必须明白,在python中,函数是对象. 这很重要. 简单例子来理解为 ...
- 为什么说想到Python中的装饰器是天才
为什么说想到Python中的装饰器是天才 只需一个@符号就能分析.测试和重复使用你的代码 带着魔杖的仙女在Python代码中飞舞 软件中有没有什么是神奇的小魔法? 有,装饰器却非常接近! 如果说有一件 ...
- python装饰器原理-python 中的装饰器及其原理
装饰器模式 此前的文章中我们介绍过装饰器模式: 装饰器模式中具体的 Decorator 实现类通过将对组建的请求转发给被装饰的对象,并在转发前后执行一些额外的动作来修改原有的部分行为,实现增强 Com ...
- python装饰器类-PYTHON里的装饰器能装饰类吗
扩展回答 如何理解python里的装饰器 通常可以理解它是一个hook 的回调函数. 或者是理解成python 留给二次开发的一个内置API. 一般是用回调和hook 方式实现的. 如何理解Pytho ...
- python类装饰器详解-python 中的装饰器详解
装饰器 闭包 闭包简单的来说就是一个函数,在该函数内部再定义一个函数,并且这个内部函数用到了外部变量(即是外部函数的参数),最终这个函数返回内部函数的引用,这就是闭包. def decorator(p ...
最新文章
- python 常用内置函数_Python小白必备的8个最常用的内置函数(推荐)
- python编写程序模拟硬币的投掷、假设0表示硬币的反面_修改了Python中的硬币投掷程序,无法完成循环...
- xlwt+xlrd配合使用修改excel表格
- ROS笔记(11) Qt工具箱
- 2016年1月20日总结
- 体检结果(2018年10月,胃肠镜)
- java web 导出excel_javaweb导出excel表格
- Makefile常用模板
- win10虚拟机下载安装流程
- mysql 易语言 邮件_易语言实现163邮箱登录获取邮件列表等操作的代码
- 获取今天是星期几的四种写法
- Unity CommandBuffer实现毛玻璃特效
- mysql配置和优化
- 初识BashBunny
- vmware缩写涵义
- SAP 如何把科目快速扩充到所有公司
- ArcGIS10.2打开ArcToolbox闪退解决方法
- 抖音怎么引流卖童装?淘宝童装卖家利用抖音引流
- 2021年中国纱线行业产量、进出口及经营规模情况分析[图]
- android 获取微信计步数量,微信运动步数是怎样计算的?终于有人研究出来了!
热门文章
- ggtree实现系统发育树可视化
- C++的this指针和引用符号的搭配使用理解
- 1 编码_TMS320F28379D之CLB解码多摩川编码器1——入手小知识(原创)
- like mysql 相反_mysql真的不能做搜索引擎吗?
- fibonacci数列前20项_等差数列、等比数列、调和数列等几种常见数列的总结
- yolov3模型识别不出训练图片_YOLOv3训练自己的模型
- 彩色MT9V034摄像头 Bayer转rgb FPGA实现(转载)
- linux动态链接库的使用,Linux动态库soname的使用
- 另一个小程序 返回的支付结果如何得到_手把手教你测微信小程序
- python中.whl文件下载,pandas