> 文档中心 > Unittest自动化测试框架教程(三)——测试用例跳过skip操作详解(附实例演示)

Unittest自动化测试框架教程(三)——测试用例跳过skip操作详解(附实例演示)


 “ 本文通过多个实例,详细解释了unittest中跳过操作的分类,跳过操作参数的导入,以及介绍了测试用例之间指定参数联动判断跳过的方法,尽情享用吧!“

PS:“大佬可直接跳转至文末总结,阅读相关内容 ”

  • 博主每篇文章的注释都是干货!每个代码段都有详细注释,一定要认真看注释!!!
  • 重要的事情说三遍:一定要看注释!!!一定要看注释!!!一定要看注释!!!

跳过的类型

  • 直接跳过、条件跳过

  • 一定要认真看注释!!!
# 1.跳过语句:直接跳过、条件跳过# @unittest.skip('跳过的原因')# @unittest.skipIf('跳过条件', '跳过的原因')# @unittest.skipUnless('不跳过的条件', '不跳过的原因')# 实例演示:下列测试仅仅执行test3,因为test1跳过、test2满足跳过条件,test3满足不跳过条件class BasicTestCase(unittest.TestCase):    @unittest.skip('因为我想跳过所以跳过')  # 直接跳过    def test1(self): print('执行test1')    @unittest.skipIf(888 < 999, '因为888比999小,所以跳过')  # 条件性跳过    def test2(self): print('执行test2')    @unittest.skipUnless('你真厉害', '因为你真厉害,所以不跳过')    def test3(self): print('执行test3')if __name__ == '__main__':  # 设定执行unittest的主函数    unittest.main()

条件跳过参数的导入

  • 必须在类下直接定义
  • 因为@unittest.skipIf()语句执行优先级大于所有def,即无论是setUp()、setUpClass()还是test2()都在其之后执行,所以定义必须在类下

  • 一定要认真看注释!!!
# 2.判定跳过的参数导入方法# 2.必须在类下直接定义,如示例的number# 2.因为@unittest.skipIf()语句执行优先级大于所有def,即无论是setUp()、setUpClass()还是test2()都在其之后执行,所以定义必须在类下# 实例演示:class BasicTestCase(unittest.TestCase):     number = '888'     @unittest.skipIf(number < '999', '因为number比999小,所以跳过')     def test2(self):     # 不会被执行,因为888满足跳过的条件  print('执行test2')    

测试用例之间参数联动判定跳过的方法

  • 使用测试用例之间(例如:test1()、test2())相关参数联动设定跳过的方法

  • 语句编码+类属性变量---类属性变量通常用列表、字典等,解决多条件依赖时方便

  • 一定要认真看注释!!!
# 3.使用tests之间相关参数联动设定跳过的方法,语句编码+类属性变量---变量通常用多值类型的结构(列表、字典等,因为可能依赖多个条件)class BasicTestCase(unittest.TestCase):    judge = {'first': 0}    def test2(self): print('执行test2') BasicTestCase.judge['first'] = 888    # 更改下个测试所要依赖的变量值    def test3(self): if BasicTestCase.judge['first'] == 888:   # 设定判定条件看是否需要跳过     return    # 若满足条件则直接return结束,此test下的之后的语句均不执行 # print('执行test3')  # 此段代码中这句话加与不加都并不会被执行,测试通过但执行语句并没有执行,因为根据依赖的条件test3已经结束if __name__ == '__main__':  # 设定条件执行unittest的主函数    unittest.main()

 总结

  • 跳过操作的分类:直接跳过、条件跳过
  • 判定跳过的参数导入方法:必须在类下直接定义
  • 使用tests之间相关参数联动设定跳过的方法,编码方式+变量,注意跳过的是当前test下return后的语句

💗 “ 想和你一起看漫天繁星,共许彼岸三千光明 。”

                                                                ——Created By 是羽十八ya