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/165565.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月29日 下午7:36
下一篇 2022年7月29日 下午7:36


相关推荐

  • 2019版idea激活码99年(注册激活)

    (2019版idea激活码99年)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html2J…

    2022年3月29日
    504
  • h3c交换机端口加入vlan命令_h3c交换机vlan配置划分命令

    h3c交换机端口加入vlan命令_h3c交换机vlan配置划分命令h3c交换机vlan配置划分命令一、基本设置1.console线连接成功2.进入系统模式system-view//提示符由变为[H3C]3.更改设备名称[H3C]sysnameTEST4.查看所有配置信息[H3C]displaycurrent-configuration//displaythis为查看当前路径下的设备信息5.创建并进入VLAN10[H3C]vlan10…

    2022年6月20日
    75
  • eclipse安装教程完整版

    eclipse安装教程完整版eclipse安装教程完整版安装Java教程安装eclipse教程安装Tomcat教程安装MySQL数据库教程安装Java教程到官网下载Java,这里推荐下载JavaSE8下载完成后点击安装,然后一直下一步,注意安装路径不要出现中文,不然可能会出错接下来配置环境变量,先找到Java的安装路径并复制路径右击计算机(没有计算机就右击此电脑)选择属性,点击高级系统设置,然后在高级下面选择环境变量这里有两种配置方法一种是采用绝对路径,一种是采用相对路径绝对路径:(推荐使用)选中系统变量中变量

    2022年5月13日
    53
  • 深度理解Agent:AI产品经理入门必读!(上)

    深度理解Agent:AI产品经理入门必读!(上)

    2026年3月16日
    2
  • leetcode-149. 直线上最多的点数(map+判重)[通俗易懂]

    leetcode-149. 直线上最多的点数(map+判重)[通俗易懂]给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上。示例 1:输入: [[1,1],[2,2],[3,3]]输出: 3解释:^|| o| o| o +————->0 1 2 3 4示例 2:输入: [[1,1],[3,2],[5,3],[4,1],[2,3],[1,4]]输出: 4解释:^|| o| o o| o| o o+—–

    2022年8月11日
    5
  • 基于51单片机+LD3320语音模块+SYN6288语音合成——语音识别智能分类垃圾桶「建议收藏」

    基于51单片机+LD3320语音模块+SYN6288语音合成——语音识别智能分类垃圾桶「建议收藏」语音识别智能分类垃圾桶基本介绍器件51单片机LD3320语音模块SYN6288语音合成SG90舵机(4个)usb-ttl模块垃圾桶四个(4个)面包板(建议用)实现思路与接线实现流程图接线呈现图代码编写语音模块(部分代码)语音模块串口调试结果51单片机代码(部分代码 )项目展示基本介绍这个一个基于51单片机做的一个语音识别分类智能垃圾桶,通过我们说话来对垃圾词语进行分类。比如:垃圾桶(一级指令)易拉罐(垃圾词语),我们通过说话说出关键字让语音模块接收到——语音模块通过串口发指令给51单片机,针对

    2022年6月26日
    30

发表回复

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

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