返回: Pytest权威教程

标记(Marks)

可以使用标记应用元数据来测试函数(但不是Fixture方法),然后可以通过Fixture方法或插件访问。

pytest.mark.filterwarnings

参考: @ pytest.mark.filterwarnings。

为标记的测试项添加警告过滤器。

pytest.mark.`filterwarnings(filter)

参数: filter(str) -

一个警告规范字符串,由Python文档的“警告过滤器”`部分中指定的元组(操作,消息,类别,模块,行号)的内容组成,以“:”分隔。 可以省略可选字段。 传递用于过滤的模块名称不是正则表达式转义。

例如:

@pytest.mark.warnings("ignore:.*usage will be deprecated.*:DeprecationWarning")
def test_foo():
...

pytest.mark.parametrize

参考: 参数化Fixture方法和测试函数。

Metafunc.`parametrize(argnames,argvalues,indirect = False,ids = None,scope = None)

使用给定argnames的argvalues列表向基础测试函数添加新调用。在收集阶段执行参数化。如果你需要设置昂贵的资源,请参阅设置间接,以便在测试设置时进行。

参数:

  • argnames- 以逗号分隔的字符串,表示一个或多个参数名称,或参数字符串的列表/元组。
  • argvalues-argvalues列表确定使用不同参数值调用测试的频率。如果只指定了一个argname,则argvalues是值列表。如果指定了N个argnames,则argvalues必须是N元组的列表,其中每个tuple-element为其各自的argname指定一个值。
  • indirect- argnames或boolean的列表。参数列表名称(argnames的子集)。如果为True,则列表包含argnames中的所有名称。对应于此列表中的argname的每个argvalue将作为request.param传递到其各自的argname fixture函数,以便它可以在测试的设置阶段而不是在收集时执行更昂贵的设置。
  • ids- 字符串ID列表或可调用的列表。如果字符串,则每个字符串对应于argvalues,以便它们是测试ID的一部分。如果将None作为特定测试的id给出,则将使用该参数的自动生成的id。如果是可调用的,它应该采用一个参数(单个argvalue)并返回一个字符串或返回None。如果为None,将使用该参数的自动生成的id。如果没有提供id,它们将自动从argvalues生成。
  • scope- 如果指定,则表示参数的范围。范围用于按参数实例对测试进行分组。它还将覆盖任何fixture函数定义的范围,允许使用测试上下文或配置设置动态范围。

pytest.mark.skip

参考: 跳过测试函数。

pytest.mark.`skip(*,reason = None): 无条件地跳过测试函数。

参数:

  • reason(str) - 跳过测试函数的原因。

pytest.mark.skipif

参考: 跳过测试函数。

如果条件是,则跳过测试函数True

`pytest.mark.``skipif(条件,*,原因=无)[

参数:

  • condition(bool
  • reason(str) - 跳过测试函数的原因。

pytest.mark.usefixtures

参考: 使用类,模块或项目中的Fixture方法。

将测试函数标记为使用给定的Fixture方法名称。

警告

应用于Fixture方法函数时,该标记无效。

pytest.mark.`usefixtures(**名称*)

参数:

  • args- 要使用的fixture的名称,作为字符串

pytest.mark.xfail

参考: XFail:将测试函数标记为预期失败。

标记测试函数按预期失败

pytest.mark.`xfail(condition = None,,reason = None,raises = None,run = True,strict = False*)

参数:

  • condition(bool
  • reason(str) - 测试函数标记为xfail的原因。
  • raises(异常) - 期望由测试函数引发的异常子类;其他例外将无法通过测试。
  • run(bool) - 如果实际应该执行测试函数。如果False,该函数将始终为xfail并且不会被执行(如果函数是segfaulting则很有用)。
  • strict(布尔) -
    • 如果False(默认值),该函数将在终端输出中显示,就xfailed好像它失败一样,就像xpass`它通过一样。在这两种情况下,这都不会导致测试套件整体失败。这对于标记稍后要解决的片状测试(随机失败的测试)特别有用。
    • 如果True,该函数将在终端输出中显示为xfailed失败,但如果它意外通过则将使测试套件失败。这对于标记始终失败的函数特别有用,并且应该有明确的指示它们是否意外地开始通过(例如,库的新版本修复了已知错误)。

自定义标记

标记是使用工厂对象动态创建的,pytest.mark并作为装饰器应用。

例如:

@pytest.mark.timeout(10,"slow",method="thread")
def test_function():
...

将创建并附加一个Mark。该mark对象将具有以下属性:

mark.args == (10,"slow")
mark.kwargs == {"method": "thread"}

Pytest权威教程21-API参考-02-标记(Marks)的更多相关文章

  1. Pytest权威教程21-API参考-03-夹具(Fixtures)

    目录 夹具(Fixtures) @ pytest.fixture config.cache的 capsys capsysbinary capfd capfdbinary doctest_namespa ...

  2. Pytest权威教程21-API参考-04-钩子(Hooks)

    目录 钩子(Hooks) 引导时的Hook方法 初始化时的Hook方法 测试运行时的Hook方法 收集用例时的Hook方法 生成测试结果时的Hook方法 调试/交互Hook方法 返回: Pytest权 ...

  3. Pytest权威教程21-API参考-05-对象(Objects)

    目录 对象(Objects) CallInfo Class Collector Config ExceptionInfo FixtureDef FSCollector Function Item Ma ...

  4. Pytest权威教程21-API参考-01-函数(Functions)

    目录 函数(Functions) pytest.approx pytest.fail pytest.skip pytest.importorskip pytest.xfail pytest.exit ...

  5. Pytest权威教程21-API参考-06-变量及异常

    目录 特殊变量(Special Variables) collect_ignore collect_ignore_glob pytest_plugins pytest_mark PYTEST_DONT ...

  6. Pytest权威教程06-使用Marks标记测试用例

    目录 使用Marks标记测试用例 在未知标记上引发异常: -strict 标记改造和迭代 返回: Pytest权威教程 使用Marks标记测试用例 通过使用pytest.mark你可以轻松地在测试用例 ...

  7. Pytest权威教程21-API参考-07-配置选项(Configuration Options)

    目录 配置选项(Configuration Options) addopts cache_dir confcutdir console_output_style doctest_encoding do ...

  8. Pytest权威教程10-捕获警告信息

    目录 捕获警告信息 @pytest.mark.filterwarnings 禁用警告摘要 完全禁用警告捕获 弃用警告和待命记录警告 确保代码触发弃用警告 用警告函数断言警告 录制警告 自定义失败消息 ...

  9. Pytest权威教程12-跳过(Skip)及预期失败(xFail): 处理不能成功的测试用例

    目录 跳过(Skip)及预期失败(xFail): 处理不能成功的测试用例 Skip跳过用例 xFail:将测试函数标记为预期失败 Skip/xFail参数设置 返回: Pytest权威教程 跳过(Sk ...

随机推荐

  1. Java的集合整理

    1.List和Set都是接口,他们都继承于接口Collection,List是一个有序的可重复的集合,而Set的无序的不可重复的集合.Collection是集合的顶层接口,Collections是一个 ...

  2. bootstrap-datetimepicker 日期控件起始时间和结束时间

    项目中经常会用到起止时间,如下图: 需要引用以下几个文件: <link href="~/lib/bootstrap/dist/css/bootstrap.min.css" r ...

  3. iOS webrtc资料总结

    1. webrtc远端图像尺寸改变时,如何调整webrtc ios view的大小 https://www.jianshu.com/p/5e1a8f5bbcf7 2. webRTC实现音频通话听筒和扬 ...

  4. HTML&CSS基础-样式的继承

    HTML&CSS基础-样式的继承 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.HTML源代码 <!DOCTYPE html> <html> & ...

  5. 适合公司和个人的目标管理方法:OKR!

    1.定义   OKR就是Objectives and Key Results的简称,包括目标(Objectives)和关键结果(Key Results)两个要素.   2.目的    就公司和团队而言 ...

  6. openstack虚拟机,采用ssh密钥登录

    在openstack中,制作出的镜像有两种登录方式 1:直接密码登录 2:秘钥登录 在openstack中加入了公钥对应自己会有一份秘钥,该怎样用秘钥进行登录, 可以直接如图在控制节点中,输入ssh ...

  7. error: invalid-first-character-of-tag-name错误解决方案

    HTML 特殊字符写法要用原始码,例如: ‘<’ 原始码为 < ‘>’ 原始码为 > 解决示例: 原错误代码 <div><</div> 修改后代码 ...

  8. Maven02 -学习总结&学习文档 -踩坑123

    maven在开发中的作用 ①自动添加第三方 jar 包 在今天的 JavaEE 开发领域,有大量的第三方框架和工具可以供我们使用.要使用这些 jar 包最简单的方法就是复制粘贴到 WEB-INF/li ...

  9. POJ3709 K-Anonymous Sequence

    题意 Language:Default K-Anonymous Sequence Time Limit: 4000MS Memory Limit: 65536K Total Submissions: ...

  10. java通过url读取网络图片

    使用java.net读取网络文件 import java.io.BufferedInputStream; import java.io.FileOutputStream; import java.io ...