python 跳过_python-pytest学习(九)-跳过用例skip

一、前言

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

skip意味着只有满足某些条件时才希望测试通过,否则pytest应该跳过运行测试。常见示例是在非windows平台上跳过仅限windows的测试,或跳过测试依赖于当前不可用的外部资源(例如:数据库)。

xfail意味着您希望测试由于某种原因而失败。一个常见的例子是对功能的测试尚未实施,或尚未修复的错误。当测试通过时尽管预计会失败(标有pytest.mark.xfail),它是一个xpass,将在测试摘要中报告。

pytest计数并分别列出skip和xfail测试。未显示有关跳过/xfailed测试的详细信息默认情况下,以避免混乱输出。你可以使用-r选项查看与“short”字母对应的详细信息显示在测试进度中。

pytest -rxXs # show extra info on xfailed,xpassed,and skipped tests

有关-r选项的更多详细信息,请运行pytest -h

二、skip

跳过测试函数的最简单方法是使用跳过装饰器标记它,可以传递一个可选原因

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

...

或者,也可以通过调用来在测试执行或设置期间强制跳过pytest。skip(reason)功能:

deftest_function():if notvaild_config():

pytest.skip("unsupported configuration")

也可以使用pytest.skip(reason,allow_module_level = True)跳过整个模块级别:

importpytestif not pytest.config.getoption("--custom-flag")

pytest.skip("--custom-flag is missing,skipping tests",allow_module_level=True)

三、skipif

如果你希望有条件地跳过某些内容,则可以使用skipif代替。这是标记测试的示例在Python3.6之前的解释器上运行时要跳过的函数。

importsys

@pytest.mark.skipif(sys.version_info< (3,6),

reason="requires python3.6 or higher")deftest_function():

...

如果条件在收集期间评估为True,则将跳过测试函数,具有指定的原因使用-rs时出现在摘要中。您可以在模块之间共享skipif标记。参考以下案例:

importmymodule

minversion= pytest.mark.skipif(mymodule.__versioninfo__ < (1,1),

reason="at least mymodule-1.1 required")

@minversiondeftest_function():

...

你可以导入标记并在另一个测试模块中重复使用它:

from test_mymodule importminversion

@minversiondeftest_anotherfunction():

...

对于较大的测试套件,通常最好有一个文件来定义标记,任何一致适用于整个测试套件。

或者,你可以使用条件字符串而不是布尔值,但它们之间不能轻易共享它们支持它们主要是出于向后兼容原因。

四、skip类或模块

您可以在类上使用skipif标记(与任何其他标记一样):

@pytest.mark.skipif(sys.platform == 'win32',

reason="dose not run on window")classTestPosixCalls(object):deftest_function(self):"will not be setup or run under 'win32' platform"

如果条件为True,则此标记将为该类的每个测试方法生成跳过结果。

警告:强烈建议不要在使用继承的类上使用skipif。pytest中的一个已知错误标记可能会导致超类中的意外行为。

如果要跳过模块的所有测试功能,可以在全局级别使用pytestmark名称。

#test_module.py

pytestmark = pytest.mark.skipif(...)

如果将多个skipif装饰器应用于测试函数,则如果任何跳过条件为真,则将跳过它。

五、skip缺少导入依赖想

你可以在模块级别或测试或测试设置功能中使用以下帮助程序

docutils = pytest.importorskip("docutils")

如果无法在此处导入docitils,则会导致测试跳过结果。你也可以跳过库的版本号。

docutils = pytest.importorskip("doctils",minversion="0.3")

将从指定模块的version属性中读取版本。

六、常用

1.无条件地跳过模块中的所有测试:

pytestmark = pytest.mark.skip("all tests still WIP")

2.根据某些条件跳过模块中的所有测试:

˓→ only”

3.如果缺少某些导入,则跳过模块中的所有测试

pexpect = pytest.importorskip("pexpect")

4.导入package,使用其文件系统位置来查找和执行用例。执行pkg目录下的所有用例

py.test --pyargs pkg

5.运行指定模块中的某个用例,如运行test_mod.py模块中的test_func测试函数

pytest test_mod.py::test_func

6.运行某个类下的某个用例,如运行TestClass类下的test_method测试方法:

pytest test_mod.py::TestClass::test_method

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/476825.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Alexa世界排名原理+作弊源码,为网站赢得好排名

虽然说 Alexa世界排名存在水分&#xff0c;高低都无所谓&#xff0c;只要能在搜索引擎中排名靠前就好了&#xff0c;但是一些风险投资还是把它当作网站的一个参考依据&#xff0c;就迫使一些网站不得不提升自己的Alexa世界排名&#xff0c;那如何让你的网站在Alexa世界排名靠前…

matlab和python哪个运行快_MATLAB比Python快吗?

你可以在这个链接的底部找到一些有用的结果 从介绍开始A comparison of weave with NumPy, Pyrex, Psyco, Fortran (77 and 90) and C for solving Laplaces equation. 它还比较了MATLAB&#xff0c;并显示了与使用Python和NumPy时类似的速度。 当然&#xff0c;这只是一个特定…

LeetCode 1162. 地图分析(BFS)

1. 题目 你现在手里有一份大小为 N x N 的『地图』&#xff08;网格&#xff09; grid&#xff0c;上面的每个『区域』&#xff08;单元格&#xff09;都用 0 和 1 标记好了。其中 0 代表海洋&#xff0c;1 代表陆地&#xff0c;你知道距离陆地区域最远的海洋区域是是哪一个吗…

邹建老大写的经典SQL

邹建老大写的经典SQL/Files/602544/SQLServer2000.rar 转载于:https://www.cnblogs.com/602544/archive/2006/12/10/588210.html

sentinel 端口_双剑合璧Nacos结合Sentinel实现流量安全控制(一):Sentinel核心库和控制台...

Alibaba Sentinel 是一款高性能且轻量级的流量控制、熔断降级解决方案。是面向分布式服务架构的高可用流量控制组件。Sentinel 官网&#xff1a;https://sentinelguard.io/zh-cn/Github&#xff1a;https://github.com/alibaba/Sentinel一、Sentinel 是什么随着微服务的流行&am…

程序员面试金典 - 面试题 16.10. 生存人数(自定义优先队列)

文章目录1. 题目2. 解题2.1 优先队列2.2 双指针1. 题目 给定N个人的出生年份和死亡年份&#xff0c;第i个人的出生年份为 birth[i]&#xff0c;死亡年份为 death[i]&#xff0c;实现一个方法以计算生存人数最多的年份。 你可以假设所有人都出生于1900年至2000年&#xff08;含…

这篇CVPR文章真是妙蛙种子到了妙妙屋

文 | kid丶源 | 知乎Paper&#xff1a;CReST: A Class-Rebalancing Self-Training Framework for Imbalanced Semi-Supervised Learning这篇文章是在组会上听到的&#xff0c;觉得真的是太太妙了。本文考虑的是半监督场景下的长尾分布问题&#xff0c;即此时我们不仅没有足够的…

rss

rss页面的生成&#xff1a;请求rss.aspx,重定向到rss.ashx.由ForumRssHandler负责处理1。BuildFeed()&#xff0c;其中ForumRssWriter。在其中起了重要作用2. WriteFeed()。 订阅1先增加一个feedid 和对应的urlFeedReaderDataProvider.Instance().AddFeed();2.根据对应的url读出…

LeetCode 1394. 找出数组中的幸运数(map计数)

文章目录1. 题目2. 解题2.1 map计数2.2 Python3解1. 题目 在整数数组中&#xff0c;如果一个整数的出现频次和它的数值大小相等&#xff0c;我们就称这个整数为「幸运数」。 给你一个整数数组 arr&#xff0c;请你从中找出并返回一个幸运数。 如果数组中存在多个幸运数&…

阳光留在心底

很少在Blog上写自己的生活&#xff0c;很少在Blog上写自己的琐事&#xff0c;觉得没什么好写的。来这座城市8年了&#xff0c;从毕业到工作&#xff0c;所有的这3000多个日子过得很充实但是也很艰辛&#xff0c;我经常笑&#xff0c;因为没有什么能比笑容更能释放压力。  不知…

预训练模型的记忆机制解密!

文 | python近年来&#xff0c;大规模预训练语言模型给自然语言处理领域带来了翻天覆地的变化。一提到预训练模型为什么好&#xff0c;标准回答往往是&#xff1a;利用了无标注自监督学习数据&#xff0c;习得了语言学与语义知识&#xff0c;并有效迁移到下游任务中。然而&…

python中的列表和元组_百度资讯搜索_python中的列表和元组

腾讯网 11小时前# 元组(tuple)是 Python 中另一个重要的序列结构,和列表类似,元组也是由一系列按特定顺序排序的元素组成。元组是一个有序列表,序列中的每个元素都分配一个数字(...百度快照数据分析师攻略 2020年11月11日 17:50分别使用max(tuple)、min(tuple)方法可以返回元组…

LeetCode 1395. 统计作战单位数(蛮力法)

1. 题目 n 名士兵站成一排。每个士兵都有一个 独一无二 的评分 rating 。 每 3 个士兵可以组成一个作战单位&#xff0c;分组规则如下&#xff1a; 从队伍中选出下标分别为 i、j、k 的 3 名士兵&#xff0c;他们的评分分别为 rating[i]、rating[j]、rating[k]作战单位需满足…

站在2006的边缘

站在2006的边缘——代腾飞 2006年12月31日 于成都时光飞逝&#xff0c;中华元年2006年转眼来到了尽头明日清晨&#xff0c;冉冉升起的阳光将迎接新的一年的到来又将重新开始新的日月轮回站在这瞬间即逝的2006的边缘心潮难以宁静,我思索着、寻求着总想写下几句&#xff0c;也该…

谷歌Flan-T5诞生!1800种语言任务超大规模微调

编辑 | 泽南、小舟来源 | 机器之心不增加算力需求&#xff0c;谷歌总结的指令微调方法能让 8000 万到 5400 亿参数的模型都显著提升性能。人工智能一个重要的目标是开发泛化能力强的模型。在自然语言处理&#xff08;NLP&#xff09;领域中&#xff0c;预训练语言模型在这方面取…

fft的c语言和matlab对比_傅里叶级数(FS)、傅里叶变换(FT)快速傅里叶变换(FFT)及量子傅里叶变换(QFT)之间推导关系...

1 引言傅里叶级数 (Fourier Series, FS) 是《高等数学》中遇到的一个重要的级数&#xff0c;它可以将任意一个满足狄利克雷条件的函数为一系列三角级数的和。最早由法国数学家傅里叶在研究偏微分方程的边值问题时提出&#xff0c;极大地推动了偏微分方程理论的发展。根据欧拉公…

OraOLEDbpus.dll找不到指定的模块的解决办法

OraOLEDbpus.dll找不到指定的模块的解决办法 使用Oracle Provider for OLE DB 进行数据库连接的时候&#xff0c;报错:&#xff1a;OraOLEDbpus.dll 找不到指定的模块在oracle的安装目录下却能找到OraOLEDbpus.dll&#xff0c;应该是其未能找到该路径&#xff0c;打开系统的环境…

LeetCode 1396. 设计地铁系统(map/unordered_map)

1. 题目 请你实现一个类 UndergroundSystem &#xff0c;它支持以下 3 种方法&#xff1a; checkIn(int id, string stationName, int t) 编号为 id 的乘客在 t 时刻进入地铁站 stationName 。 一个乘客在同一时间只能在一个地铁站进入或者离开。 checkOut(int id, string st…

python中object是什么数据类型_自学Python2.1-基本数据类型-字符串str(object) 上

自学Python2.1-基本数据类型-字符串str(object) 上 字符串是 Python 中最常用的数据类型。我们可以使用引号(或")来创建字符串。 创建字符串很简单&#xff0c;只要为变量分配一个值即可。例如&#xff1a; var1 Hello World! var2 "Python Runoob" 1. Python…

.NET下使用DataAdapter保存数据时,如何生成command语句及使用事务

.NET下使用DataAdapter保存数据时&#xff0c;如何生成command语句及使用事务 在.NET下&#xff0c;运用DATASET对数据进行批量更新时&#xff0c;需要与 DataAdapter配合使用。DataAdapter数据适配器的作用是生成数据更新时所需的insert,delete,update等语句&#xff0c;这些语…