py自动化之跳过某一条用例(unittest)

在自动化过程中,我们可能因为某一些原因跳过一些自动话用例,可以使用以下几种方法

1.@unittest.skip(reason=‘跳过原因’)的功能是跳过,可装饰于类与方法。打上后直接跳过。

2.@unittest.skipIf(判断, reason=‘跳过原因’)的功能是跳过,可装饰于类与方法。当判断为True时跳过。

3、@unittest.skipUnless(判断, reason=‘跳过原因’)的功能是跳过,可装饰于类与方法。当判断为False时跳过。

4、@unittest.expectedFailure:如果test失败了,这个test不计入失败的case数目。

import unittest


class TestDemo(unittest.TestCase):

    @unittest.skip(reason="跳过用例test_01")
    def test_01(self):
        print("test_01用例")

    @unittest.skipIf(0 < 3, reason="0小于3为True,跳过这条用例")
    def test_02(self):
        print("test_02用例")

    @unittest.skipIf(0 > 3, reason="0大于3为False,执行这条用例")
    def test_03(self):
        print("test_03用例")

    @unittest.skipUnless(5 < 10, reason="5小于10为True,执行这条用例")
    def test_04(self):
        print("test_04用例")

    @unittest.skipUnless(5 > 10, reason="5大于10为False,跳过这条用例")
    def test_05(self):
        print("test_04用例")

    @unittest.expectedFailure
    def test_06(self):
        i = 1
        self.assertEqual(i, "2")


# 创建测试套件
suite = unittest.TestSuite()
# 添加TestDemo这个测试类到测试套件中,这个类中的所有用例都会被添加进来
suite.addTest(unittest.makeSuite(TestDemo))
# 创建执行器
runner = unittest.TextTestRunner()
runner.run(suite)

执行结果:

以上是针对装饰方法使用的例子,也可以装饰类使用

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在编写测试用例时,有时候我们会遇到一些无法执行的情况,比如某些测试用例需要依赖于外部环境或者数据,而这些依赖项可能并不是每次都可用。这时候,我们可以使用 `@unittest.skip(reason)` 或 `@unittest.skipIf(condition, reason)` 或 `@unittest.skipUnless(condition, reason)` 装饰器来跳过这些测试用例。 - `@unittest.skip(reason)`:无条件跳过该测试用例; - `@unittest.skipIf(condition, reason)`:当 `condition` 为 `True` 时跳过该测试用例; - `@unittest.skipUnless(condition, reason)`:当 `condition` 为 `False` 时跳过该测试用例。 其中,`reason` 参数是可选的,表示跳过测试用例的原因,会在测试报告中显示。下面是一个示例: ```python import unittest class MyTestCase(unittest.TestCase): def test_something(self): # 这个测试用例会被跳过,原因是不依赖于某些必要的外部条件 self.skipTest("Not implemented yet") @unittest.skip("demonstrating skipping") def test_nothing(self): # 这个测试用例会被无条件跳过 self.fail("shouldn't happen") @unittest.skipIf(True, "skipping due to condition") def test_skip_if(self): # 当条件为 True 时,这个测试用例会被跳过 self.assertEqual(1 + 1, 3) @unittest.skipUnless(False, "skipping unless condition is False") def test_skip_unless(self): # 当条件为 False 时,这个测试用例会被跳过 self.assertEqual(2 * 2, 5) ``` 在上面的例子中,`test_something` 测试用例使用了 `self.skipTest` 方法来无条件跳过该测试用例;`test_nothing` 测试用例使用了 `@unittest.skip` 装饰器来无条件跳过该测试用例;`test_skip_if` 测试用例使用了 `@unittest.skipIf` 装饰器,当条件为 `True` 时跳过该测试用例;`test_skip_unless` 测试用例使用了 `@unittest.skipUnless` 装饰器,当条件为 `False` 时跳过该测试用例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值