unittest篇5-用例的跳过skip

1、前言

上一篇博客,我们介绍了测试脚手架,也就是当我们在实际的测试中, 我们可能有些参数或者有些用例case只需要执行一次,那么我们也只能在用例执行一次,不然重复执行,会导致数据覆盖等情况。我们可以采取测试脚手架来完成对应的操作。

今天这篇博客我们来介绍一下,用例的跳过。

2、跳过

在运行测试中,有时需要直接跳过某些测试用例,或者当某些测试用例符合某个条件时跳过测试,又或者直接将测试用例设置失败状态。unittest提供了一些实现这些需求的装饰器。

2.1 unittest.skip(reason)

1、含义:表示无条件的跳过装饰的测试,需要说明跳过测试的原因
2、运用:

import unittest
class TestCaseDemo(unittest.TestCase):

    @unittest.skip('直接跳过')
    def testassertdemo(self):
        self.assertNotEqual(1, 1)

    def testassertdemo_1(self):
        self.assertListEqual([1, 2], [1, 2])

    def testassertdemo_2(self):
        self.assertNotRegex("1", "122")  # 正则是否匹配

if __name__ == '__main__':
    unittest.main()

3、结果:

第一条testassertdemo的case,里面的断言是不符合预期的,预期用例会报错,但是由于skip直接跳过了,所以运行结果都是通过了。
在这里插入图片描述

2.2 unittest.skipIf(condition,reason)

1、含义:如果条件为真,那么跳过的测试
2、运用:

import unittest
class TestCaseDemo(unittest.TestCase):

    @unittest.skipIf(3>2,'前面条件为真时,跳过此用例')
    def testassertdemo(self):
        self.assertNotEqual(1, 1)

    def testassertdemo_1(self):
        self.assertListEqual([1, 2], [1, 2])

    def testassertdemo_2(self):
        self.assertNotRegex("1", "122")  # 正则是否匹配

if __name__ == '__main__':
    unittest.main()

3、结果:
第一条case,前面的条件成立,同样跳过此用例
在这里插入图片描述

2.3 unittest.skipUnless(condition,reason)

1、含义:当条件为真时,需要执行的测试
2、运用:

import unittest
class TestCaseDemo(unittest.TestCase):

    @unittest.skipUnless(3>2,'前面条件为真时,需要执行此用例')
    def testassertdemo(self):
        self.assertNotEqual(1, 1)

    def testassertdemo_1(self):
        self.assertListEqual([1, 2], [1, 2])

    def testassertdemo_2(self):
        self.assertNotRegex("1", "122")  # 正则是否匹配

if __name__ == '__main__':
    unittest.main()

3、结果:
第一条用例,条件成立,执行该用例,所以报错了
在这里插入图片描述

2.4 unittest.expectedFailure()

1、含义:不管执行结果是否失败,都将测试标记为失败
2、运用:

import unittest
class TestCaseDemo(unittest.TestCase):

    @unittest.expectedFailure
    def testassertdemo(self):
        self.assertNotEqual(1, 2)

    def testassertdemo_1(self):
        self.assertListEqual([1, 2], [1, 2])

    def testassertdemo_2(self):
        self.assertNotRegex("1", "122")  # 正则是否匹配

if __name__ == '__main__':
    unittest.main()

3、结果:
无论执行结果是否失败,都将用例标记为失败,但不会抛出失败信息.
在这里插入图片描述

ps :

1、后续内容继续深入unittest的学习;
2、有什么问题,欢迎大家评论区评论交流!谢谢大家!
3、如果觉得博主这篇博客对大家有用,麻烦评论区留下自己的‘脚印’ !

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值