Pytest学习(七) - skip、skipif的使用
前言
作为一个java党,我还是觉得pytest和testng很像,有时候真的会感觉到代码语言在某种程度上是相通的,那么今天来说说这两个知识点。
skip和skipif,见名知意,就是跳过测试呗,直白的说就是用于不想执行的代码,标记后,标记的代码不执行。
skip的用法
使用示例:@pytest.mark.skip(reason="不想执行的原因,执行时会输出reason内容")
1、标记在函数方法上
示例代码如下:
# 标记在函数上
@pytest.mark.skip(reason="标记在函数上,被标记函数不会被执行!!")
def test_case2():
print("我是测试用例2,但我不会执行")
运行结果如下:

2、标记在类中的函数方法上
示例代码如下:
class TestClass1(object):
def test_case3(self):
print("我是用例3")
# 标记在类中的函数上
@pytest.mark.skip(reason="标记在类中的函数上,同样也不会执行哦!")
def test_case4(self):
print("我是测试用例4,但我不会执行")
运行结果如下:

3、标记在类上
示例代码如下:
@pytest.mark.skip(reason="标记在类上,整个类及类中的方法都不会执行!")
class TestClass2(object):
def test_case5(self):
print("我是用例5")
运行结果如下:

小结:
- @pytest.mark.skip 可以加在函数上,类上,类方法上
- 如果加在类上面,类里面的所有测试用例都不会执行
4、在测试用例执行期间强制跳过
以简单的for循环为例,执行到第三个的时候,跳出,示例代码如下:
def test_case6():
for i in range(50):
print(f"输出第 【{i}】个数")
if i == 3:
pytest.skip("我跑不动了,不输出了")
运行结果如下:

总结:
可以理解为这时的跳过测试就和循环的break一样,这时不再用注解的形式了。
5、在模块级别跳过测试
语法:pytest.skip(msg="",allow_module_level=False),当 allow_module_level=True 时,可以设置在模块级别跳过整个模块,示例代码如下:
# -*- coding: utf-8 -*-
# @Time : 2020/11/12 20:30
# @Author : longrong.lang
# @FileName: test_skip.py
# @Software: PyCharm
# @Cnblogs :https://www.cnblogs.com/longronglang
import sys
import pytest
if sys.platform.startswith("win"):
pytest.skip("当 allow_module_level=True 时,可以设置在模块级别跳过整个模块",allow_module_level=True)
@pytest.fixture(autouse=True)
def dataTable():
print("数据初始化成功")
def test_case1():
print("我是用例1")
运行结果如下:

6、希望有条件地跳过某些测试用例
语法:@pytest.mark.skipif(条件表达式, reason="")
示例代码如下:
@pytest.mark.skip(sys.platform.startswith("win"),reason="windows系统不执行哦")
def test_case7():
print("我是用例6")
运行结果如下:

7、跳过标记的使用
好处
- 方便用例的统一管理维护
- 可在不同模块标记
需要将 pytest.mark.skip 和 pytest.mark.skipif 赋值给一个标记变量,用变量(注解变量)进行标记,示例代码如下:
skip = pytest.mark.skip("skip的标记变量,标记的函数或类不执行")
skipif = pytest.mark.skipif("skipif的标记变量,标记的函数或类不执行")
@skip
def test_case8():
print("测试用例8")
class TestClass(object):
@skipif
def test_case9(self):
print("测试用例9")
运行结果如下:

8、缺少某些导入跳过的测试
语法:pytest.importorskip( modname: str, minversion: Optional[str] = None, reason: Optional[str] = None )
参数列表
- modname:模块名
- minversion:版本号
- reasone:跳过原因,默认不给也行
示例代码如下:
importskip = pytest.importorskip("importskip", minversion="0.3",reason="此处是导入失败,跳过的测试")
@importskip
def test_10():
print('测试用例10')
运行结果如下:

系列参考文章:
https://www.cnblogs.com/poloyy/category/1690628.html
Pytest学习(七) - skip、skipif的使用的更多相关文章
- Pytest学习笔记7-skip和skipif的使用
前言 在实际的测试中,我们经常会遇到需要跳过某些测试用例的情况,pytest提供了skip和ifskip来跳过测试 下面我们就来通过一些例子看看skip和ifskip具体如何使用吧 skip的用法 使 ...
- httprunner学习20-跳过用例skip/skipIf/skipUnless
前言 在实际工作中,我们有时候会需要对测试用例加判断,比如某个接口功能暂时去掉了,我们希望对这个用例skip不去执行. 当其它的接口依赖于登陆接口返回的token时候,如果登陆都失败了,后面的接口,我 ...
- pytest八:skip 跳过用例
这是一个快速指南,介绍如何在不同情况下跳过模块中的测试1.无条件地跳过模块中的所有测试:pytestmark = pytest.mark.skip("all tests still WIP& ...
- [转载]pytest学习笔记
pytest学习笔记(三) 接着上一篇的内容,这里主要讲下参数化,pytest很好的支持了测试函数中变量的参数化 一.pytest的参数化 1.通过命令行来实现参数化 文档中给了一个简单的例子, ...
- MyBatis学习七:spring和MyBatis整合
<\mybatis\day02\16mybatis和spring整合-sqlSessionFactory配置.avi;> MyBatis学习七:spring和MyBatis整合.逆向工程 ...
- SVG 学习<七> SVG的路径——path(1)直线命令、弧线命令
目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...
- day 85 Vue学习七之vue-cookie
Vue学习七之vue-cookie 通过vue如何操作cookie呢 参考链接:https://www.jianshu.com/p/535b53989b39 第一步:安装vue-cookies ...
- (转)MyBatis框架的学习(七)——MyBatis逆向工程自动生成代码
http://blog.csdn.net/yerenyuan_pku/article/details/71909325 什么是逆向工程 MyBatis的一个主要的特点就是需要程序员自己编写sql,那么 ...
- Pytest学习(三) - setup和teardown的使用
一.前言 从文章标题可以看出,就是初始化和释放的操作,根据我的java习惯来学习pytest,个人感觉没差太多,理解上也不是很难. 哦,对了,差点跑题了,这个框架是基于Python语言的,在学习的时候 ...
随机推荐
- Python+Appium自动化测试(12)-通过坐标定位元素
在使用appium做app自动化测试的过程中,可能会遇到元素的属性值不是唯一的情况,导致不能通过find_element_bi_xx()方法定位元素,这个时候我们就可以通过坐标来定位元素. 1,通过绝 ...
- sublime text2的插件
编写html代码,一定要使用emmet(前身是zencoding),还有以下插件也是可以考虑的:bracketHighter 高亮引号.括号等code Aligment 代码对齐DocBlockr 如 ...
- Python自动化准备工作(pycharm安装)
一.安装Python 1.下载python-3.7.0-amd64.exe后双击 2.勾选Add Python3.7 to PATH可不用配置环境变量 3.点击下一步,可以按默认路径,也可以自己选择路 ...
- Linux系统快速搭建LAMP
LAMP是 Linux + Apache + MySQL + PHP 的环境要求,即web服务器. 1.前置条件: (1)搭建Linux系统(参考博客:https://www.cnblogs.com/ ...
- nginx优化:使用expires在浏览器端缓存静态文件
一,nginx中expires指令的作用 网站的图片等静态文件一旦发布,通常很少改动, 为了减小对服务器请求的压力,提高用户浏览速度, 我们可以设置nginx中的expires, 使用户访问一次后,将 ...
- 第六章 SSH远程服务介绍
一.相关介绍 1.简介SSH是一个安全协议,在进行数据传输时,会对数据包进行加密处理,加密后在进行数据传输.确保了数据传输安全.那SSH服务主要功能有哪些呢? 1)提供远程连接的服务 linux远程连 ...
- 干货分享:在Windows下使用Visual Studio搭建C语言开发环境
前言:本文将教大家如何使用 VIsual Studio Code 搭建 C 语言开发环境,包括使用 VS Code 如何编译和调试 C 语言程序,需要 用到的工具有 Visual Studio Cod ...
- 用python和GDAL 读取GRIB数据
from osgeo import gdal import numpy as np path = './data/201912/anl_surf125.2019120100' dataset = gd ...
- 一个例子"入坑"布谷鸟算法(附完整py代码)
布谷鸟是比较新的启发式最优化算法,但其与传统的遗传算法,退火算法等相比,被证明收敛速度更快,计算效率更高! 文章目录 本文诞生的缘由 布谷鸟算法思想简介 更新位置的方式 莱维飞行 局部随机行走 抛出个 ...
- 网络爬虫养成记(第一天)——安装Scrapy
古人云:工欲善其事,必先利其器.在网络爬虫中,Scrapy无疑是一把利器,那么,今天我们来谈谈Scrapy的安装. 幸运的是,Scrapy已经支持Python3.4+了,也就是说,我们可以在pytho ...