unittest_skip跳过用例执行(3)

在执行测试用例时,有时候有些用例是不需要执行的,比如版本迭代用例弃用,测试周期短只需要执行优先级高的用例,那我们怎么办呢?难道删除这些用例?那下次执行时如果又需要执行这些用例时,又把它补回来?这样操作就太麻烦了,我们可以使用unittest提供的一些跳过指定用例的方法来规避这些问题。

unittest跳过用例的方法如下:

  • @unittest.skip(reason):无条件用例。reason是跳过原因,下同。
  • @unittest.skipIf(condition, reason):condition为True时跳过用例。
  • @unittest.skipUnless(condition, reason):condition为False时跳过用例。
import unittest

# 定义预执行用例的优先级(假如用例分为4级,数字越小优先级越高)
case_level = 3


class Demo(unittest.TestCase):

    @unittest.skip("废弃用例,不执行!(强制跳过)")
    def test_a(self):
        print("test_a被执行")

    # 当预执行的用例优先级(3)高于用例的优先级(4)时,则用不执行例
    @unittest.skipIf(case_level < 4, "当前用例优先级低,不执行!(条件为True,则跳过)")
    def test_b(self):
        print("test_b被执行")

    # 当预执行的用例优先级(3)高于用例的优先级(4)时,则不执行用例
    @unittest.skipUnless(case_level > 4, "当前用例优先级低,不执行!(条件为False,则跳过)")
    def test_c(self):
        print("test_c被执行")


if __name__ == '__main__':
    # 识别指定目录下所有以test开头的文件以及文件中的用例,并将用例自动添加到测试套中
    test_cases_dir = "./test_cases/"
    suite = unittest.defaultTestLoader.discover(test_cases_dir)

    # 生成执行器
    runner = unittest.TextTestRunner(verbosity=2)
    # 执行用例
    runner.run(suite)

执行结果

原文地址:https://www.cnblogs.com/testlearn/p/14424218.html