pytest skipif_pytest失败重跑

pytest skipif_pytest失败重跑前言pytest.mark.skip可以标记无法在某些平台上运行的测试功能,或者您希望失败的测试功能Skip和xfail:处理那些不会成功的测试用例你可以对那些在某些特定平台上不能运行的测试用

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

前言

pytest.mark.skip可以标记无法在某些平台上运行的测试功能,或者您希望失败的测试功能
 

Skip和xfail: 处理那些不会成功的测试用例

你可以对那些在某些特定平台上不能运行的测试用例或者你预期会失败的测试用例做一个标记,这样pytest在提供测试报告时可以做对应的处理以保持整个测试套的结果都是green的(一般都用绿色表示测试通过)

skip表示在满足某些情况下该测试用例是通过的,否则这个测试用例应该被跳过不执行。比较常见的例子是测试用例在windows平台下执行在非windows平台下不执行,或者比如数据库等外部资源不能访问时不执行某些测试用例。 xfail表示期望某个测试用例因为某些原因是失败的。一个常见的例子是一个新特性还没有实现或者bug还没有被修复。如果该测试用例已经被定义为pytest.mark.xfail但是又测试通过了,那么在最后的测试报告中会被标记为xpass。

pytest单独统计skip和xfail的测试用例,为了保持整洁,默认情况下测试报告中不会显示skipped/xfailed的测试用例的信息。你可以使用-r选项来查看相关的详细信息: pytest -rxXs # r:显示详细信息 x: xfailed, X: xpassed, s: skipped 你可以在pytest -h中查看-r的更多帮助。
 

skip(无条件跳过)

 

最简单的方式就是使用skip装饰器:

@pytest.mark.skip(reason="no way of currently testing this") 
	def test_the_unknown(): 
    ...

 

也可以在代码执行过程中直接调用pytest.skip(reason)来强制跳过:

def test_function(): 
  if not valid_config(): 
    pytest.skip("unsupported configuration")

 

skipif(有条件跳过)

 

你可以使用skipif来在某些条件下跳过测试。

下面是一个在检查python的版本是否高于3.6的示例:

import sys 
@pytest.mark.skipif(sys.version_info < (3, 6), reason="require python3.6 or higher") 
	def test_function(): 
    ...

在查找用例的时候,如果判断skipif的条件是True,该用例会被跳过,如果使用-rs参数,详细的reason会在测试报告中体现

 

如果你要跳过模块中的所有测试,你需要使用全局的pytestmark:

# test_module.py 
pytestmark = pytest.mark.skipif("跳过原因")

 

你可以在各个模块中共享skipif标记,比如有下面的模块定义:

# test_mymodule.py 
import mymodule 
minversion = pytest.mark.skipif(mymodule.__versioninfo__ < (1,1), reason="at least mymodule‐1.1 required") 

@minversion 
def test_function(): 
  ...

 

你可以在其他模块中import这个标记:

# test_myothermodule.py 
from test_mymodule import minversion 

@minversion 
def test_anotherfunction(): 
  ...

在大型项目中,一般会将这些共享的标记放在同一个文件里供其他模块调用。

 

XFail:标记测试用例是期望失败的

 

你可以使用xFail来标记你期望某个测试用例是失败的:

@pytest.mark.xfail 
	def test_function(): ...

该测试用例会被正常执行,但是当它失败的时候不会有traceback。在测试报告中,该测试会被列举在“期望失败的用例”(XFAIL)或者“不应该通过的用例”(XPASS)里。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/165910.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 基于MATLAB语音信号的处理与滤波

    基于MATLAB语音信号的处理与滤波摘要:MATLAB是十分强大的用于数据分析和处理的工程实用软件,利用其来进行语音信号的分析、处理和可视化十分便捷。文中介绍了在MATLAB环境中如何驱动声卡采集语音信号和语音信号采集后的文档处理方法,并介绍了FFT频谱分析原理及其显示、MATLAB中相关函数的功能、滤波器的设计和使用。在此基础上,对实际采集的一段含噪声语音信号进行了相关分析处理,包括对语音信号的录取和导入,信号时域和频域方面的分析,添加噪声前后的差异对比,滤波分析,语音特效处理。结果表明利用MATLAB处理语音信号十分简单、方便且易于实现。

    2022年5月25日
    52
  • [Android-ARCore开发]ARCore从入门到放弃2-Demo介绍和扩展

    昨天只是简单运行了官方的Demo,今天抽时间看了下文档和代码,大概了解一下原理。Demo功能很简单,打开之后自动检测平面,手指触摸平面会在触摸位置放置一个机器人。检测平面成功后如下面截图所示,可以看到很多蓝色小点和平面的菱形网状图。蓝色点称为锚点,结合手机传感器用于追踪手机移动。详细原理介绍参考官网介绍网格、小点和机器人都是使用OpenGL在SurfaceView上绘制的,看代码发现,当手指点击时

    2022年3月11日
    43
  • 2021CSGO_csgo靠谱交易平台

    2021CSGO_csgo靠谱交易平台2021csgo国内靠谱正规的开箱网站大全官网直达链接优惠码/推广码网站状态incsgocsgogo直接取回skinsdogcsgogo直接取回88skinscsgo直接取回skskinscsgogo直接取回npskinscsgogo直接取回fateskinscsgo直接取回yskins暂无可取回coolkaixiangcsgo直接取回piggycasecsgogo可取回box818csgo

    2022年10月5日
    1
  • vista怎么用_电脑系统vista

    vista怎么用_电脑系统vista1、怎么才可以关掉”windows需要你的许可才能继续”这个窗口?你用的系统是WindowsVista可以按下Win+R输入“Msconfig”打开“系统配置”程序,切换到“工具”选项卡,选中“禁用UAC”,并点击“启动”禁用它吧2、vista我的电脑在哪里WindowsVista默认安装桌面上仅保存一个回收站图标,我们可以在桌面的空白处单击鼠标邮件,在弹出的快捷…

    2022年10月9日
    2
  • pycharm哪个版本_pycharm版本选择

    pycharm哪个版本_pycharm版本选择Pycharm各大版本Pycharm作为python最常见的IDE,常见的有三种版本专业版:功能强大,适合开发者,需要通过付费或学生认证才能使用社区版:可以供广大python爱好者免费使用,具备常用的python库,可以实现基本的python用法,用于试验在工作中出现的错误教育版:基于社区版发展而来,也是免费使用,其功能与社区版相似,但是更适合学生,新人学习,由教师可以创建工程、教学…

    2022年8月28日
    2
  • linux解压zip中文乱码问题「建议收藏」

    linux解压zip中文乱码问题「建议收藏」unzip-OCP936xxx.zip

    2022年5月10日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号