pytest skipif_skip的中文是什么

pytest skipif_skip的中文是什么前言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)里。

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/166351.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • bWAPP 安装_bud在哪里下载

    bWAPP 安装_bud在哪里下载1.前言bwapp是一款非常好的漏洞演示平台,其包含有100多个漏洞。bwapp漏洞平台的安装大致有3种单独下载,部署到apache+mysql+php环境下直接下载虚拟机使用docker进行安装2.单独下载先去下载bwapp环境然后将下载的压缩包解压在bwapp/admin下找到settings.php文件将配置文件的内容修改为自己的内容然后访问bwapp进…

  • Python:暴力激活成功教程密码

    Python:暴力激活成功教程密码简介:暴力激活成功教程密码的方式一般是枚举法进行破译尝试,通过一次次不同的输入尝试从而得出最终的密码,所以密码的长度和复杂性就尤为重要。本文仅以范例,警示大家在创建密码的时候,应当尽量选择组合复杂度高的,有一定长度的密码,而不是123456之类的简单密码。激活成功教程的思路:1、获取目标密码长度,一般为4,6,12,15,18位长度。2、获取目标密码组成的范围,一般为数字,小写字母,大写字母,特殊符号3、组装密码,通过itertools模块组装。Python:常见排列组合问题处理4、枚举破译。例如生活中最常见的

  • ~按位取反_按位取反什么意思

    ~按位取反_按位取反什么意思inta=0;intb=~a;System.out.println(b);  // -1计算方法:因为整形是32位有符号补码整数表示的。因此将整形转换为二进制后为:a 十进制0二进制00000000000000000000000000000000~a的二进制1111111111111111111111111

  • 感觉自己不会的东西太多了,不知道如何下手?

    感觉自己不会的东西太多了,不知道如何下手?GitHub8.8kStar的Java工程师成神之路,不来了解一下吗?GitHub8.8kStar的Java工程师成神之路,真的不来了解一下吗?GitHub8.8kStar的Java工程师成神之路,真的确定不来了解一下吗?如果让我统计下,粉丝问我做多的问题是什么,这个问题肯定可以排前5,问出这个问题的朋友们遍布各个年龄段。实话说,这个问题同样也困扰过我,大概就是我刚…

  • 《使用QSortFilterProxyModel实现QTreeView行列过滤》:系列教程之十

    《使用QSortFilterProxyModel实现QTreeView行列过滤》:系列教程之十一、QSortFilterProxyModel简介QSortFilterProxyModel的使用比较简单,我们在上一章,使用它来实现排序时,已经大概使用过了。本章我们主要使用它实现对QTreeView中行列的筛选过滤。它是一个model代理类,需要配合原始数据model使用。我们先来看看QSortFilterProxyModel的设置过滤器函数,如下:voidsetFilterRegExp(constQRegExp&regExp);参数QRegExp正则表达式类,其构造函数,包括p

发表回复

您的电子邮箱地址不会被公开。

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