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-8 import unittest from test.test_pprint import uni class 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()
好的,运行一下
ssFxu ====================================================================== FAIL: test_ce_3 (__main__.Test_ce) ---------------------------------------------------------------------- Traceback (most recent call last): File "D:\Escplise\workspace\Pytest\src\test001\CE.py", line 20, in test_ce_3 self.assertTrue(self.a>16) AssertionError: False is not true ---------------------------------------------------------------------- Ran 5 tests in 0.000s 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)
以上这篇Python单元测试_使用装饰器实现测试跳过和预期故障的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
- python 测试实现方法
- 使用SharedStore的Python实现方法
- 跨平台python异步回调机制实现和使用方法
- 一种分析代金券使用分布情况的方法python实现版(上)
- 【Python】实现性能测试工具方法
- python 测试实现方法
- 如何使用单元测试 测试WEB组件方法中的含有Session、Cookie等HttpContext功能调用的方法?
- python中getattr函数使用方法 getattr实现工厂模式
- Python实现WEB实际测试方法介绍
- Python使用函数默认值实现函数静态变量的方法
- 使用JDBC插入多数据测试的3种实现方法
- Win7下的使用QTP进行猴子测试的性能日志实现方法
- 【软件测试】使用JUnit框架实现Java单元测试
- python中getattr函数使用方法 getattr实现工厂模式
- 使用js实现基于可视布局信息的网页噪音去除的测试方法
- 使用JDBC插入多数据测试的3种实现方法
- 在C#中使用装饰器模式和扩展方法实现Fluent Interface
- 在C#中使用装饰器模式和扩展方法实现Fluent Interface
- selenium+python关于登录的脚本代码,使用了读取excel以及向excel中写入测试结果的方法
- 排列搜索 庞果网(C语言版,虽实现了,但未通过测试,时间超过3s,使用的是全排序方法,愿大神指导)