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语言的,在学习的时候 ...
随机推荐
- php数据显示在html截取字符
<?php echo mb_subsrt($s['content'],0,20,'gbkj')?> gbk也可以是utf8根据实际情况来
- Prometheus入门教程(二):Prometheus + Grafana实现可视化、告警
文章首发于[陈树义]公众号,点击跳转到原文:https://mp.weixin.qq.com/s/56S290p4j9KROB5uGRcGkQ Prometheus UI 提供了快速验证 PromQL ...
- Redis不重启的情况下 切换持久化模式
确保redis版本在2.2以上 [root@localhost /]# redis-server -v Redis server v=4.0.10 sha=00000000:0 malloc=jema ...
- SpringBoot整合Elasticsearch游标查询(scroll)
游标查询(scroll)简介 scroll 查询 可以用来对 Elasticsearch 有效地执行大批量的文档查询,而又不用付出深度分页那种代价. 游标查询会取某个时间点的快照数据. 查询初始化之后 ...
- 【自学编程】C语言编程简单的小程序,计算长方体体积!
计算长方体体积 有朋友会说长方体体积还不好算吗?长X宽X高.没错用计算器一下就可以出结果,编程反而麻烦些,但是我们说的是这种思维,如果复杂的重复运算的话写好程序就非常简单了. 简单运算下一个固定高度的 ...
- 【暑假集训】HZOI2019 Luogu P1006 传纸条 二三四维解法
写三次丢失两次,我谔谔,以后再不在博客园先保存我就去死 题目内容 洛谷链接 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学被安排坐成一个\(m\)行.\(n\ ...
- go 解析path
使用库 https://github.com/antchfx/htmlquery package main import ( "fmt" "github.com/antc ...
- 解决Mac下AndroidStudio内容时卡顿
Mac下AndroidStudio在写代码的时候出现卡顿,小圆圈会一直转,此时我们应该检查下AndroidStudio的内存使用情况了. 1.点击左上角 AndroidStudio -- Prefer ...
- Python入门教程完整版(懂中文就能学会)
前几天给大家分享<从零学会Photoshop经典教程300集>的教程受到了广泛的关注,有人不知道怎么领取,居然称小编为"骗子". 不过小编的内心是强大的,网友虐我千百遍 ...
- Mac下使用GitHub+Hexo搭建个人博客
首发链接 开始之前需要在电脑上安装好Git和node.js,Mac上可以使用Homebrew命令行工具来安装Git和node.js 安装Homebrew 在命令行工具输入以下命令,如果已经安装过Hom ...