unittest---unittest跳过用例

  我们在做自动化测试的时候,可能会遇到一些用例中间不用回归,想要进行跳过。直接注释的话,代码量修改过大,显然这个方法不妥,哪还有什么方法?unittest这个自动化框架可以帮助我们完成这个操作

自动跳过用例

unittest中提供了一些跳过用例的装饰器方法。我们可以通过这些装饰器来帮我们完成这些操作

@unittest.skip()

表示:无条件跳过用例

def skip(reason):
    """
   无条件地跳过用例
    """
    def decorator(test_item):
        if not isinstance(test_item, type):
            @functools.wraps(test_item)
            def skip_wrapper(*args, **kwargs):
                raise SkipTest(reason)
            test_item = skip_wrapper

        test_item.__unittest_skip__ = True
        test_item.__unittest_skip_why__ = reason
        return test_item
    return decorator

@unittest.skipIf()

表示:如果条件为真,则跳过测试。

def skipIf(condition, reason):
    """
    如果条件为真,则跳过测试。
    """
    if condition:
        return skip(reason)
    return _id

@unittest.skipUnless()

表示:除非条件为真,否则跳过测试。

def skipUnless(condition, reason):
    """
   除非条件为真,否则跳过测试。
    """
    if not condition:
        return skip(reason)
    return _id

小试牛刀

闲话少说直接开始实战,这里我们一样使用接口完成我们的测试,当然接口文档,还是我们的查询歌曲接口(简单,免费,还好用)

# coding:utf-8
import unittest
import requests

class   Music(unittest.TestCase):

    def select(self,name):
        url = ‘https://api.apiopen.top/searchMusic‘
        data = {
             "name":name
        }
        r = requests.post(url,data=data)
        b = r.json()[‘result‘][0][‘title‘]
        return b

    @unittest.skip("强制性跳过")
    def test01(self):
        b = ‘断桥残雪‘
        a = self.select(b)
        self.assertEqual(b,a)
        print("用例1跳过")

    @unittest.skipIf(True ,‘条件为真的时候跳过‘)
    def test02(self):
        a = ‘说好不哭‘
        b = self.select(a)
        self.assertEqual(a,b)
        print("用例2跳过")

    @unittest.skipUnless(False ,‘条件为假的时候跳过‘)
    def test03(self):
        a = ‘芒种‘
        c = ‘抖音‘
        b = self.select(a)
        try:
            self.assertIn(c,b,msg=‘\n抖音不存在芒种歌曲信息中‘)
        except Exception as msg:
            print(‘错误信息%s‘%msg)
        print("用例3跳过")

    def test04(self):
        a = ‘像鱼‘
        b = self.select(a)
        self.assertEqual(a,b)
        print("用例4不跳过")

if __name__ == ‘__main__‘:
    unittest.main(verbosity=2)

通过代码可以发现我们对用例123进行了跳过,但是每个跳过的条件不同,执行后发现只有用例4没有跳过,当然我们代码中也是只有对用例4没有跳过。

也可以从执行结果中看到我们一共跳过了3条用例,以及每条都是怎么样进行跳过的

有小伙伴们要问了,这个只是跳过单个用例,那么我想跳过一个class中的所有用例呢?这还不简单?直接把装饰器放在class上面不就可以了。

# coding:utf-8
import unittest
import requests

@unittest.skip(‘强制性跳过‘)
class   Music(unittest.TestCase):

    def select(self,name):
        url = ‘https://api.apiopen.top/searchMusic‘
        data = {
             "name":name
        }
        r = requests.post(url,data=data)
        b = r.json()[‘result‘][0][‘title‘]
        return b

    def test01(self):
        b = ‘断桥残雪‘
        a = self.select(b)
        self.assertEqual(b,a)
        print("用例1跳过")

    def test02(self):
        a = ‘说好不哭‘
        b = self.select(a)
        self.assertEqual(a,b)
        print("用例2跳过")

    def test03(self):
        a = ‘芒种‘
        c = ‘抖音‘
        b = self.select(a)
        try:
            self.assertIn(c,b,msg=‘\n抖音不存在芒种歌曲信息中‘)
        except Exception as msg:
            print(‘错误信息%s‘%msg)
        print("用例3跳过")

    def test04(self):
        a = ‘像鱼‘
        b = self.select(a)
        self.assertEqual(a,b)
        print("用例4不跳过")

if __name__ == ‘__main__‘:
    unittest.main(verbosity=2)

通过执行结果发现已经把class中的四条用例全部都跳过了。

安静写的文章如果对您有帮助的话,可以点个关注,如果哪里有写错或者不懂的地方可以下方留言,看到后第一时间进行回复!

原文地址:https://www.cnblogs.com/qican/p/11868674.html

时间: 2024-09-30 11:31:08

unittest---unittest跳过用例的相关文章

Selenium2+python自动化70-unittest之跳过用例(skip)【转载】

前言 当测试用例写完后,有些模块有改动时候,会影响到部分用例的执行,这个时候我们希望暂时跳过这些用例. 或者前面某个功能运行失败了,后面的几个用例是依赖于这个功能的用例,如果第一步就失败了,后面的用例也就没必要去执行了,直接跳过就行,节省用例执行时间. 一.skip装饰器 skip装饰器一共有四个    @unittest.skip(reason) Unconditionally skip the decorated test. reason should describe why the te

katalon系列十三:5.10新增跳过用例&命令行赋值全局变量

Katalon Studio升级到5.10版本了,这次新增了2个很实用的功能:一.跳过用例在Listener中新增了跳过用例方法,Listener类似于JUnit4的annotation中的@Before.@After.@BeforeClass.@AfterClass,python单元测试框架unittest中的setUp().tearDown(),不熟悉的同学可以先学个测试框架.跳过的使用在执行结果中的状态为SKIPPED,示例代码如下: 二.命令行赋值全局变量Katalon中的Project

跳过用例skip

1.装饰器,放在函数前面,跳过用例 @pytest.mark.skip(reason="no way of currently testing this") import pytest def test1(): print('操作1') print("-----------------------------------------------") @pytest.mark.skip(reason="no way of currently testing

unittest学习3:用例执行

unittest执行用例方法: 1.单个py文件 if __name__ == "__main__": unittest.main() 2.多个py文件,引用测试用例,使用测试套件,执行所加载到套件中用例 import unittest from test_case.test_study1 import Test_Study1 from test_case.test_study2_skip import Test_Study2 # 实例化测试套件及加载用例 suit = unittes

如何使用python控制手机(以微信游戏跳一跳为例)

需要一个安卓手机(请原谅我买不起苹果) 需要一根数据线(智能充电的电线我估计不行) 需要一台电脑(笔记本,台式机都可以,此次试验以win7系统为例) 声明下:本人初学python 一个星期,做此博文的目的就是觉得好玩,中间大量百度,请谅解. 打开手机的开发者选项,本人小米手机,系统android 7.0(miui 9.1),设置->我的设备->全部参数(点击miui版本5次,即可开启开发者模式) 设置->更多设置(倒数第三个就是开发者选项)->开启USB调试,使用数据线连接手机和电

python unittest--TestCase类总结4,skip跳过用例或者跳过测试类

跳过测试类: 跳过某个用例: 如果发现是跳过时,就不会执行setup和teardown,就执行停止执行用例了 原文地址:https://www.cnblogs.com/dmtz/p/11005309.html

pytest文档12-skip跳过用例

前言 pytest.mark.skip可以标记无法在某些平台上运行的测试功能,或者您希望失败的测试功能 skip意味着只有在满足某些条件时才希望测试通过,否则pytest应该跳过运行测试. 常见示例是在非Windows平台上跳过仅限Windows的测试,或跳过测试依赖于当前不可用的外部资源(例如数据库). xfail意味着您希望测试由于某种原因而失败. 一个常见的例子是对功能的测试尚未实施,或尚未修复的错误. 当测试通过时尽管预计会失败(标有pytest.mark.xfail),它是一个xpas

关于unittest单元测试框架中常用的几种用例加载方法

unittest模块是Python自带的一个单元测试模块,我们可以用来做单元测试.unittest模块包含了如下几个子模块: 测试用例:TestCase 测试集:TestSuite 加载用例:TestLoader 执行用例:TextTestRunner 首先编写一个简单的加减乘除数学方法类: class MathCalculate: ''' 加减乘除的计算类 ''' def __init__(self, first_num, second_num): self.first_num = first

unittest管理用例生成测试报告

#登录方法的封装 from appium import webdriver from time import sleep from python_selenium.Slide import swipeLeft def login(user,pwd): caps = { "platformName": "Android", "deviceName": "127.0.0.1:21503", "platformVersio