在执行测试用例时,有时候有些用例是不需要执行的,比如版本迭代用例弃用,测试周期短只需要执行优先级高的用例,那我们怎么办呢?难道删除这些用例?那下次执行时如果又需要执行这些用例时,又把它补回来?这样操作就太麻烦了,我们可以使用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)
执行结果
-事必有法,然后有成- 最后祝大家早日达到测试的天花板!
以下是我收集到的比较好的学习教程资源,虽然不是什么很值钱的东西,如果你刚好需要,可以留言【777】直接拿走就好了