• Pytest权威教程21-API参考-02-标记(Marks)


    返回: 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"}
    
  • 相关阅读:
    CentOS7 搭建php环境
    多tomcat服务和nginx负载均衡配置
    linux grep命令
    centos7 远程连接其他服务器redis
    centos7 远程连接其他服务器mysql
    关于结构体对齐
    c语言打印一个整数的二进制形式
    c语言判断一个数是否为偶数
    vim的窗口切换
    pow(x,y)函数的实现算法(递归函数)
  • 原文地址:https://www.cnblogs.com/superhin/p/11733450.html
Copyright © 2020-2023  润新知