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中的四条用例全部都跳过了。

安静写的文章如果对您有帮助的话,可以点个关注,如果哪里有写错或者不懂的地方可以下方留言,看到后第一时间进行回复!
unittest---unittest跳过用例的更多相关文章
- unittest之跳过用例(skip) (含如何调用类里面函数相互调取变量的方法)
当测试用例写完后,有些模块有改动时候,会影响到部分用例的执行,这个时候我们希望暂时跳过这些用例. 或者前面某个功能运行失败了,后面的几个用例是依赖于这个功能的用例,如果第一步就失败了,后面的用例也就没 ...
- selenium+python自动化unittest之跳过用例skip
前言 当测试用例写完后,有些模块有改动时候,会影响到部分用例的执行,这个时候我们希望暂时跳过这些用例. 或者前面某个功能运行失败了,后面的几个用例是依赖于这个功能的用例,如果第一步就失败了,后面的用例 ...
- Python Unittest - 根据不同测试环境跳过用例详解
本文章会讲述以下几个内容: 1.Unittest 如何跳过用例 2.如何使用sys.argv 3.自动化测试项目中如何一套代码多套环境运行 一.Unittest跳过用例 @unittest.skip( ...
- Python Unittest根据不同测试环境跳过用例详解
虽然现在用的Katalon,不过这篇Unittest基本的用法讲的还是不错的 转自:https://mp.weixin.qq.com/s/ZcrjOrJ1m-hAj3gXK9TjzQ 本文章会讲述以下 ...
- python:unittest之跳过测试和预期失败的用例
在利用单元测试框架执行测试用例的过程中,有时只需要执行一部分用例,或者跳过某些暂不需要执行的用例,python的unittest框架就内置这样的功能. 前面的博客介绍了unittest框架的测试用例加 ...
- Python单元测试框架unittest重要属性 与 用例编写思路
前言 本文为转载,原文地址作者列举python unittest这个测试框架的主要属性和 测试用例思路 unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行, ...
- unittest学习4-跳过用例执行
unittest支持跳过单个测试方法,甚至整个测试用例,还支持将测试用例标记为“测试失败” 基本跳过如下: import unittestimport requests,sys class MyTes ...
- katalon系列十三:5.10新增跳过用例&命令行赋值全局变量
Katalon Studio升级到5.10版本了,这次新增了2个很实用的功能:一.跳过用例在Listener中新增了跳过用例方法,Listener类似于JUnit4的annotation中的@Befo ...
- Selenium2+python自动化70-unittest之跳过用例(skip)
前言 当测试用例写完后,有些模块有改动时候,会影响到部分用例的执行,这个时候我们希望暂时跳过这些用例. 或者前面某个功能运行失败了,后面的几个用例是依赖于这个功能的用例,如果第一步就失败了,后面的用例 ...
- Selenium2+python自动化70-unittest之跳过用例(skip)【转载】
前言 当测试用例写完后,有些模块有改动时候,会影响到部分用例的执行,这个时候我们希望暂时跳过这些用例. 或者前面某个功能运行失败了,后面的几个用例是依赖于这个功能的用例,如果第一步就失败了,后面的用例 ...
随机推荐
- CodeForces-999A-Mishka and Contest
Mishka started participating in a programming contest. There are nn problems in the contest. Mishka' ...
- 洛谷 题解 P1025 【数的划分】
将n个小球放到k个盒子中的情况总数 = (a)至少有一个盒子只有一个小球的情况数 + (b)没有一个盒子只有一个小球的情况数 这样写出表达式: a.因为盒子不加区分,那么=情况数与"将n-1 ...
- 笔记||Python3之布尔表达式+条件判断
布尔表达式: 布尔类型:特性:只有两种情况 --- 真 / 假 1 -- True False 2 -- type(True) ------------ <class ...
- JPEG文件编/解码详解
JPEG文件编/解码详解(1) JPEG(Joint Photographic Experts Group)是联合图像专家小组的英文缩写.它由国际电话与电报咨询委员会CCITT(The Interna ...
- 十年Java程序员-带你走进Java虚拟机-类加载机制
类的生命周期 1.加载 将.class文件从磁盘读到内存 2.连接 2.1 验证 验证字节码文件的正确性 2.2 准备 给类的静态变量分配内存,并赋予默认值 2.3 解析 类装载器装入类所引用的其它所 ...
- 高仿 django插拔式 及 settings配置文件
目录 基于django中间件实现插拔式 仿django settings 基于django中间件实现插拔式 start.py from notify import * send_all('好嗨哦') ...
- OurEDA慕课网开发记录
项目说明 OurEDA实验室每年都会面向大一新生招人,每周的沙龙都会有学长来讲课,传经验,录下来的沙龙视频就非常有价值,因此,在老师的安排下,我负责开发了慕课网这样一个项目. 首要问题及其解决方案 视 ...
- 手写SpringMVC
环境描述 idea java 8 1. POM文件 <?xml version="1.0" encoding="UTF-8"?> <proje ...
- 微服务分布式 spring cloud springboot 框架源码 activiti工作流 前后分离
1.代码生成器: [正反双向](单表.主表.明细表.树形表,快速开发利器)freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本.处理类.service等完整模块2. ...
- SpringCloud-服务注册与实现-Eureka创建服务注册中心(附源码下载)
场景 SpringCloud学习之运行第一个Eureka程序: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/90611451 S ...