unittest.skip跳过测试方法
python unittest测试框架从python2.7开始支持设置跳过指定的测试方法或是跳过满足某种条件的测试用例。
@unittest.skip(reason): skip(reason)装饰器:无条件跳过装饰的测试,并说明跳过测试的原因。
@unittest.skipIf(reason): skipIf(condition,reason)装饰器:条件为真时,跳过装饰的测试,并说明跳过测试的原因。
@unittest.skipUnless(reason): skipUnless(condition,reason)装饰器:条件为假时,跳过装饰的测试,并说明跳过测试的原因。
@unittest.expectedFailure: 标记该测试预期为失败 ,如果该测试方法运行失败,则该测试不算做失败
#coding:UTF-8
import unittest
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)
#断言结果是否为False,为假则测试用例通过
@unittest.expectedFailure
def test_ce_5(self):
self.assertFalse(self.a==15)
if __name__ == '__main__':
unittest.main()
'''
s:全称是skipped(跳过)
s:条件为真,所以也是skipped(跳过)
F:条件为真,所以忽略装饰器,执行断言代码,显然是failures(失败)
x:断言结果显然是失败的,但是这是在我们意料之中,所以是expected failures(预期的失败)
u:断言结果显然是pass,但是我们预计可能不通过,所以是unexpected successes(意想不到的成功)
即执行结果所示 FAILED (failures=1, skipped=2, expected failures=1, unexpected successes=1)
'''
执行结果:
D:\python20190819>"C:/Program Files/Python37/python.exe" d:/python20190819/unittest跳过测试和预期失败.py
ssFxu
======================================================================
FAIL: test_ce_3 (__main__.Test_ce)
----------------------------------------------------------------------
Traceback (most recent call last):
File "d:/python20190819/unittest跳过测试和预期失败.py", line 20, in test_ce_3
self.assertTrue(self.a>16)
AssertionError: False is not true
----------------------------------------------------------------------
Ran 5 tests in 0.001s
FAILED (failures=1, skipped=2, expected failures=1, unexpected successes=1)
D:\python20190819>