zoukankan      html  css  js  c++  java
  • Python+selenium之跳过测试和预期失败

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

    1.unittest.skip(reason)

    无条件地跳过装饰的测试,说明跳过测试的原因

    2.unittest.skipIf(condition,reason)

    如果条件为真时,跳过装饰的测试。

    3.unittest.skipUless(condition,reason)

    跳过装饰的测试,除非条件为真

    4.unittest.expectedFailure()

    测试标记为失败。不管执行结果是否失败,统一标记为失败。

    代码如下:

     1 # # coding =utf-8
     2 # # calculator
     3 #
     4 # class Count ():
     5 #     def __init__(self, a, b):
     6 #         self.a = int (a)
     7 #         self.b = int (b)
     8 #
     9 #     def add(self):
    10 #         return self.a + self.b
    11 #
    12 #     def sub(self):
    13 #         return self.a - self.b
    14 import unittest
    15 
    16 
    17 class MyTest (unittest.TestCase):
    18     def setUp(self):
    19         pass
    20 
    21     def tearDown(self):
    22         pass
    23 
    24     @unittest.skip ("直接跳过测试")
    25     def test_skip(self):
    26         print("test aaa")
    27 
    28     @unittest.skipIf (3 > 2, "当条件为True时,跳过测试")
    29     def test_skip_if(self):
    30         print('test bbb')
    31 
    32     @unittest.skipUnless (3 > 2, "当条件为True时,执行测试")
    33     def test_skip_unless(self):
    34         print('test ccc')
    35 
    36     @unittest.expectedFailure
    37     def test_expected_failure(self):
    38         assertEqual (2, 3)
    39 
    40 
    41 if __name__ == '__main__':
    42     unittest.main ()

    如上:第一条测试用例通过@unittest.skip()装饰,直接跳过不执行。

               第二条用例通过@unittest.skipIf()装饰,当条件为真时不执行,3>2条件为真(True),跳过不执行。

               第三条用例通过@unittest.skipUnless()z装饰,当条件为真时执行,判断3>2条件为真(True),第三条用例执行。

               第四条用例通过@unittest.expectedFailure装饰,不管执行结果是否失败,统一标记为失败,但不会抛出错误信息。

    这些方法同样可以作用测试类,只需要将他们定义在测试类上面即可。

     1 import unittest
     2 
     3 
     4 @unittest.skip ("直接跳过该测试类")
     5 class MyTest (unittest.TestCase):
     6     def setUp(self):
     7         pass
     8 
     9     def tearDown(self):
    10         pass
    11 
    12     @unittest.skip ("直接跳过测试")
    13     def test_skip(self):
    14         print("test aaa")
    15 
    16     @unittest.skipIf (3 > 2, "当条件为True时,跳过测试")
    17     def test_skip_if(self):
    18         print('test bbb')
    19 
    20     @unittest.skipUnless (3 > 2, "当条件为True时,执行测试")
    21     def test_skip_unless(self):
    22         print('test ccc')
    23 
    24     @unittest.expectedFailure
    25     def test_expected_failure(self):
    26         assertEqual (2, 3)
    27 
    28 
    29 if __name__ == '__main__':
    30     unittest.main ()

               

  • 相关阅读:
    在线jq库
    解决python3.6的UnicodeEncodeError: 'gbk' codec can't encode character 'xbb' in position 28613: illegal multibyte sequence
    PHP后台支付的开发:微信支付和支付宝支付
    PHP操控Excel视频教程
    微信h5静默、非静默授权获取用户openId的方法和步骤
    OAuth2.0微信网页授权登录
    微信第三方登录 -- (PC端+移动端)
    web字体规范
    移动端字体设置
    在 Web 内容中使用系统字体
  • 原文地址:https://www.cnblogs.com/fengyiru6369/p/7581519.html
Copyright © 2011-2022 走看看