目录
1、@unittest.skip()(跳过该装饰器下的用例)
2、@unittest.skipIf()(跳过该装饰器下判断条件为True的用例)
3、@unittest.skipUnless()(跳过该装饰器下判断条件为False的用例)
4、@unittest.expectedFailure()(跳过该装饰器下执行结果失败的用例)
在unittest中还有几个常用使用例跳过的装饰器,比如@unittest.skip()直接跳过该测试用例、@unittest.skipIf()当判断结果为True时,跳过该用例、@unittest.skipUnless()当判断结果为False时,跳过该测试用例、@unittest.expectedFailure()默认测试结果为失败的,当确实是失败的话跳过该用例,当实际结果为通过时,测试结果显示为失败,下面一个一个来看下
1、@unittest.skip()(跳过该装饰器下的用例)
@unittest.skip()为可以跳过该测试用例,需要在跳过的用例前加上该装饰器,可以在括号里填上内容,这样可以知道因为什么原因不用执行该用例,具体写法为@unittest.skip('不需要执行的原因'),可以看下面的例子
import unittest #导入unittest
class Test_zsq(unittest.TestCase): #定义一个测试类为Test_zsq
@unittest.skip('这次不用执行') #给第一个用例加上跳过的装饰器,在后面的括号里可以写原因
def test1(self): #定义用例1为test1
print("test1不会执行") #用例内容为 打印 test1不会执行
def test2(self): #定义用例2为test2
print("test2需要执行") #用例内容为 打印 test2需要执行
执行结果:
2、@unittest.skipIf()(跳过该装饰器下判断条件为True的用例)
@unittest.skipIf()为条件判断为True时会跳过该条用例,括号里需要填判断条件和跳过的原因, @unittest.skipIf(判断条件,跳过的原因),可以看下下面例子,用例test1的判断条件为True,所以在执行时,跳过了该用例没有执行,用例test2的判断条件为False,所以对该用例进行了执行。
import unittest #导入unittest
class Test_zsq(unittest.TestCase): #定义一个测试类为Test_zsq
@unittest.skipIf(True,"判断为true时跳过") #给第一个用例加上判断为True时不执行的装饰器,在后面的括号里可以判断条件和原因,使其判断结果为True
def test1(self): #定义用例1为test1
print("test1不会执行") #用例内容为 打印 test1不会执行
@unittest.skipIf(False, "判断为False时执行") # 给第二个用例加上判断为True时不执行的装饰器,在后面的括号里可以判断条件和原因,使其判断结果为False
def test2(self): #定义用例2为test2
print("test2需要执行") #用例内容为 打印 test2需要执行
执行后的结果为:
3、@unittest.skipUnless()(跳过该装饰器下判断条件为False的用例)
@unittest.skipUnless()和@unittest.skipIf()两个的用法一样,只是判断的条件是相反的,@unittest.skipIf()为判断的条件是True跳过,而 @unittest.skipUnless()是当判断的条件为False时跳过,使用方式都是在括号里填上判断条件和跳过的原因即可,@unittest.skipUnless(判断条件,跳过的原因)。
import unittest #导入unittest
class Test_zsq(unittest.TestCase): #定义一个测试类为Test_zsq
@unittest.skipUnless(True,"判断为true时执行") #给第一个用例加上判断为False时不执行的装饰器,在后面的括号里可以判断条件和原因,使其判断结果为True
def test1(self): #定义用例1为test1
print("test1需要执行") #用例内容为 打印 test1不会执行
@unittest.skipUnless(False, "判断为False时跳过") # 给第二个用例加上判断为False时不执行的装饰器,在后面的括号里可以判断条件和原因,使其判断结果为False
def test2(self): #定义用例2为test2
print("test2不会执行") #用例内容为 打印 test2需要执行
执行后的结果为:
4、@unittest.expectedFailure()(跳过该装饰器下执行结果失败的用例)
@unittest.expectedFailure()是用例标记该测试用例的预期结果为不通过状态的装饰器,加上该装饰器后,当用例为失败的状态时,在执行时会跳过该用例,而当下面的用例为通过状态时,测试结果会显示为未通过,可以看下下面的例子。
import unittest #导入unittest
class Test_zsq(unittest.TestCase): #定义一个测试类为Test_zsq
@unittest.expectedFailure #给第一个用例加上@unittest.expectedFailure装饰器,并使用例为是失败的状态
def test1(self): #定义用例1为test1
self.assertEqual(1,2) #该测试结果为失败的例子
@unittest.expectedFailure #给第二个用例加上@unittest.expectedFailure装饰器,并使用例为是通过的状态
def test2(self): #定义用例2为test2
self.assertEqual(1, 1) #该测试结果为通过的例子
测试结果:
如果大家在使用过程中遇到了问题,可以在文章下留言,或者关注公众号:刘阿童木的进化记录,进行留言
下图为公众号二维码,内容会同步发出,大家可以关注一起学习!