Pytest中skip和skipif的具体使用方法


Posted in Python onJune 30, 2021

skip的用法

使用示例:@pytest.mark.skip(reason="跳过的原因,会在执行结果中打印")

标记在测试函数中

举个?

import pytest


def test_1():
    print("测试用例1")


@pytest.mark.skip(reason="没写完,不执行此用例")
def test_2():
    print("测试用例2")

执行结果如下:

Pytest中skip和skipif的具体使用方法

标记在测试类的测试用例中

举个?

import pytest

class TestCase(object):
    def test_1(self):
        print("测试用例1")


    @pytest.mark.skip(reason="没写完,不执行此用例")
    def test_2(self):
        print("测试用例2")

执行结果如下

Pytest中skip和skipif的具体使用方法

标记在测试类方法上

举个?

import pytest


@pytest.mark.skip(reason="没写完,不执行此用例")
class TestCase1(object):
    def test_1(self):
        print("测试用例1")

    def test_2(self):
        print("测试用例2")


class TestCase2(object):
    def test_3(self):
        print("测试用例3")

    def test_4(self):
        print("测试用例4")

执行结果如下

Pytest中skip和skipif的具体使用方法

总结

  • @pytest.mark.skip 可以加在函数上,类上,类方法上
  • 如果加在类上面,则类里面的所有测试用例都不会执行

在测试用例执行期间强制跳过

以一个for循环为例,执行到第3次的时候跳出

import pytest

def test_demo():
    for i in range(50):
        print(f"输出第【{i}】个数")
        if i == 3:
            pytest.skip("跑不动了,不再执行了")

执行结果如下

Pytest中skip和skipif的具体使用方法

在模块级别跳过测试用例

语法:pytest.skip(msg="",allow_module_level=False)

allow_module_level=True时,可以设置在模块级别跳过整个模块

import pytest

pytest.skip("跳过整个模块", allow_module_level=True)

@pytest.fixture(autouse=True)
def test_1():
    print("执行测试用例1")

def test_2():
    print("执行测试用例2")

执行结果如下

Pytest中skip和skipif的具体使用方法

有条件的跳过某些用例

语法:@pytest.mark.skipif(condition, reason="")

import sys
import pytest


@pytest.mark.skipif(sys.platform == 'darwin', reason="does not run on MacOS")
class TestSkipIf(object):
    def test_demo(self):
        print("不能在MacOS上运行")

注意:condition需要返回True才会跳过

执行结果如下:

Pytest中skip和skipif的具体使用方法

跳过标记的使用

  • 可以将 pytest.mark.skip 和 pytest.mark.skipif 赋值给一个标记变量
  • 在不同模块之间共享这个标记变量
  • 若有多个模块的测试用例需要用到相同的 skip 或 skipif ,可以用一个单独的文件去管理这些通用标记,然后适用于整个测试用例集

举个?

import sys
import pytest

skipmark = pytest.mark.skip(reason="不执行此用例")
skipifmark = pytest.mark.skipif(sys.platform == 'darwin', reason="does not run on MacOS")


@skipifmark
class TestSkipIf(object):
    def test_demo(self):
        print("不能在MacOS上运行")


@skipmark
def test_1():
    print("测试用例1")


def test_2():
    print("测试用例2")

执行结果如下

Pytest中skip和skipif的具体使用方法

当缺少某些导入时跳过用例

语法:

pytest.importorskip( modname: str, minversion: Optional[str] = None, reason: Optional[str] = None )

参数:

  • modname: 需要被导入的模块名称,比如 selenium;
  • minversion: 表示需要导入的最小的版本号,如果该版本不达标,将会打印出报错信息;
  • reason: 只有当模块没有被导入时,给定该参数将会显示出给定的消息内容

找不到对应module

举个?

import pytest
rock = pytest.importorskip("rock")

@rock
def test_1():
    print("测试是否导入了rock模块")

运行结果

Pytest中skip和skipif的具体使用方法

如果版本不达标

举个?

import pytest
sel = pytest.importorskip("selenium", minversion="3.150")

@sel
def test_1():
  	print("测试是否导入了selenium模块")

运行结果

Pytest中skip和skipif的具体使用方法

整理参考

小菠萝的测试笔记

到此这篇关于Pytest中skip和skipif的具体使用方法的文章就介绍到这了,更多相关skip和skipif的使用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python中的hashlib和base64加密模块使用实例
Sep 02 Python
python清除字符串中间空格的实例讲解
May 11 Python
python去除文件中重复的行实例
Jun 29 Python
python微元法计算函数曲线长度的方法
Nov 08 Python
Python程序打包工具py2exe和PyInstaller详解
Jun 28 Python
Python中 Global和Nonlocal的用法详解
Jan 20 Python
python模拟预测一下新型冠状病毒肺炎的数据
Feb 01 Python
将python文件打包exe独立运行程序方法详解
Feb 12 Python
python安装dlib库报错问题及解决方法
Mar 16 Python
Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例
Mar 18 Python
python应用Axes3D绘图(批量梯度下降算法)
Mar 25 Python
如何用Python搭建gRPC服务
Jun 30 Python
Python将CSV文件转化为HTML文件的操作方法
如何使用Tkinter进行窗口的管理与设置
Python 语言实现六大查找算法
详解MindSpore自定义模型损失函数
教你用python实现12306余票查询
python实现简易自习室座位预约系统
如何用Python搭建gRPC服务
You might like
PHP图片处理之使用imagecopyresampled函数裁剪图片例子
2014/11/19 PHP
使用Appcan客户端自动更新PHP版本号(全)
2015/07/31 PHP
php判断手机浏览还是web浏览,并执行相应的动作简单实例
2016/07/28 PHP
PHP数组的定义、初始化和数组元素的显示实现代码
2016/11/05 PHP
laravel实现按月或天或小时统计mysql数据的方法
2019/10/09 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
图片按比例缩放函数
2006/06/26 Javascript
jQuery弹出层插件简化版代码下载
2008/10/16 Javascript
jQuery 行级解析读取XML文件(附源码)
2009/10/12 Javascript
js换图片效果可进行定时操作
2014/06/09 Javascript
Angularjs 基础入门
2014/12/26 Javascript
javascript中offset、client、scroll的属性总结
2015/08/13 Javascript
JS实现移动端按首字母检索城市列表附源码下载
2017/07/05 Javascript
Vue.js结合Ueditor富文本编辑器的实例代码
2017/07/11 Javascript
Bootstrap Tooltip显示换行和左对齐的解决方案
2017/10/11 Javascript
详解vue项目首页加载速度优化
2017/10/18 Javascript
详解vue指令与$nextTick 操作DOM的不同之处
2018/08/02 Javascript
Vue.js递归组件实现组织架构树和选人功能
2019/07/04 Javascript
微信小程序实现列表滚动头部吸顶的示例代码
2020/07/12 Javascript
[48:38]DOTA2亚洲邀请赛 3.31 小组赛 B组 Mineski vs Secret
2018/03/31 DOTA
python写一个随机点名软件的实例
2019/11/28 Python
pyinstaller还原python代码过程图解
2020/01/08 Python
JetBrains PyCharm(Community版本)的下载、安装和初步使用图文教程详解
2020/03/19 Python
html5使用canvas实现弹幕功能示例
2017/09/11 HTML / CSS
YSL圣罗兰美妆美国官网:Yves Saint Lauret US
2016/11/21 全球购物
英国领先的酒类网上商城:TheDrinkShop
2017/03/16 全球购物
戴森香港官方网站:Dyson香港
2021/02/11 全球购物
平面设计岗位职责
2013/12/14 职场文书
药剂专业学生求职信范文
2013/12/28 职场文书
初三新学期计划书
2014/05/03 职场文书
学校关爱留守儿童活动方案
2014/08/27 职场文书
2015年医院药剂科工作总结
2015/05/04 职场文书
2019辞职报告范本3篇!
2019/07/23 职场文书
django如何自定义manage.py管理命令
2021/04/27 Python
详解python字符串驻留技术
2021/05/21 Python
使用CSS实现一个搜索引擎的原理解析
2021/09/25 HTML / CSS