pytest skipif_白盒测试用例

pytest skipif_白盒测试用例前言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/165147.html原文链接:https://javaforall.net

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


相关推荐

  • ubuntu卸载cuda10.2_dpkg强制卸载软件

    ubuntu卸载cuda10.2_dpkg强制卸载软件一、参考资料CUDA、CUDNN在Ubuntu下的安装及配置二、注意事项用deb方式安装CUDA,会附带安装显卡驱动;用run方式安装CUDA,需要提前安装好显卡驱动;安装显卡驱动的时候,最好安装高版本的,这样不会受cuda版本的影响;三、run方式卸载用run方式安装的CUDA和驱动#uninstallcuda#第一行命令不要忘记要加上perl命令,要不然会报错sudoperl/usr/local/cuda-X.Y/bin/uninstall_cuda_X.Y.pl

    2025年9月1日
    6
  • ARM机器使用netdata监控

    ARM机器使用netdata监控ARM 机器使用 netdata 监控安装下载地址 https github com netdata netdata releases 找到对应平台的版本下载此处使用了 netdata aarch64 latest gz run 下载下来直接 shnetdata aarch64 latest gz run 进行安装 安装完成之后 可以通过在浏览器中访问 http your server ip 19999 查看 Netdata 的监控 如果不可以查看 请查看防火墙设置 查看状态 停止 重启 systemc

    2025年6月23日
    4
  • gtest和gmock的关系_gtest教程

    gtest和gmock的关系_gtest教程对于c++来说写单元测试和mock框架不是一件容易的事情。还好,Google为我们搭建了一个出色的单元测试和mock框架。网上的例子很多都过多强调概念,本文用一个简单的例子让大家对于什么是gtest和gmock让大家有一个直观的了解,让大家很快上手,就像写helloword一样容易。gtest&gmock的1.6版本的使用make编译,新版的已经已经迁移

    2022年9月28日
    4
  • C语言回文字符串

    C语言回文字符串“回文串”是一个正读和反读都一样的字符串,字符串由数字和小写字母组成,比如“level”或者“abcdcba”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。输入:包含多个测试实例,每一行对应一个字符串,串长最多100字母。输出:对每个字符串,输出它是第几个,如第一个输出为”case1:”;如果一个字符串是回文串,则输出”yes”,否则输出”no”,在yes/no之前用一个空格…

    2022年6月6日
    35
  • 同一界面画出多个QQ图(R语言)「建议收藏」

    同一界面画出多个QQ图(R语言)「建议收藏」题目:一名研究者用光子吸收法测量了妇女骨骼中无机物含量,对三根骨头主侧和非主侧记录了测量值,数据框“T1bones.txt”中的第2至第7列记录了相应数据。对各个变量做qq图,在同一个界面画出所有的qq图,不同的qq图用不同颜色表示。文件:T1bones.txt受试者编号    主侧桡骨    桡骨    主侧肱骨    肱骨    主侧尺骨    尺骨1    1.103    1….

    2022年8月10日
    11
  • mybatisplus iservice接口(iphone 8 plus怎么样)

    Mybatis-plus之IService的使用

    2022年4月10日
    129

发表回复

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

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