zoukankan      html  css  js  c++  java
  • (二)unittest之跳过测试和预期失败的用例

    原文链接:https://www.cnblogs.com/imyalost/p/9296705.html

    在利用单元测试框架执行测试用例的过程中,有时只需要执行一部分用例,或者跳过某些暂不需要执行的用例,python的unittest框架就内置这样的功能。

    1、unittest.skip()方法

    跳过测试和预期失败的功能,是python3.1版本开始,出现的新功能。unittest支持跳过单个测试用例甚至整个测试类。

    skip()的各个方法说明如下:

    方法 说明
    @unittest.skip(reason)

    无条件跳过被装饰的测试方法;

    reason:理由,描述为什么跳过测试用例

    @unittest.skipIf(condition,reason)

    如果条件为真,则继续执行执行,否则跳过被装饰的测试用例;

    reason:理由,描述为什么跳过测试用例

    @unittest.skipUnless(condition,reason) 除非条件为真,否则跳过被装饰的测试用例;
    @unittest.expectedFailure

    将测试用例标记为“预期失败”:

    如果测试执行时失败,则测试结果不计为失败;

    unittest.Skip(reason)

    如引发某种定义的异常,则跳过该测试;

    一般可以使用TestCase.skip()或者一个跳过装饰器,而不是直接使用

    官方文档:https://docs.python.org/3.6/library/unittest.html

    2、unittest.skip()实例

    # coding=utf-8
    import unittest
    import requests
    
    class DemoTest(unittest.TestCase):
        status = 200
        def setUp(self):
            self.url = 'http://www.cnblogs.com/imyalost/'
    
        @unittest.skip(u"无条件跳过该测试")
        def test_blog1(self):
            # 无条件跳过
            r1 = requests.get(self.url)
    
        @unittest.skipIf(status > 200, u"状态码大于200,就跳过该测试")
        def test_blog2(self):
            # 如果断言结果为真,则继续执行,否则跳过测试
            r2 = requests.get(self.url)
            status2 = r2.status_code
            self.assertTrue(status2 > self.status)
    
        @unittest.skipUnless(status == 404, u"状态码为200,则跳过")
        def test_blog3(self):
            # 除非结果为真,否则跳过该测试
            r3 = requests.get(self.url)
            status3 = r3.status_code
            self.assertTrue(status3 > self.status)
    
        @unittest.expectedFailure
        def test_blog4(self):
            # 将测试用例标记为“预期失败”,如果测试执行时失败,则测试结果不计为失败
            r4 = requests.get(self.url+'/test4')
            status4 = r4.status_code
            self.assertTrue(status4 ==self.status)
    
        def tearDown(self):
            pass
    
    if __name__ == '__main__':
        unittest.main()
    

      

  • 相关阅读:
    在Centos7下源代码安装配置Nginx
    mysql5.7.21源码安装
    数据库设计三大范式
    电商项目中使用Redis实现秒杀功能
    PHP和Redis实现在高并发下的抢购及秒杀功能示例详解
    PHP面向对象(抽象类与抽象方法、接口的实现)
    php面向对象 封装继承多态 接口、重载、抽象类、最终类总结
    利用VHD虚拟文件加密自己的个人信息
    Chrome常用快捷键
    stl本子
  • 原文地址:https://www.cnblogs.com/lvchengda/p/13176485.html
Copyright © 2011-2022 走看看