从0开始python学习-32.pytest.mark()

本文详细介绍了pytest框架中的用户自定义标记和内置标签,如skip用于无条件跳过、skipif进行条件跳过、xfail用于预期失败以及parametrize实现参数化测试。这些功能有助于有效管理和控制测试用例的执行过程。
摘要由CSDN通过智能技术生成

目录

1. 用户自定义标记

1.1 注册标记​编辑

1.2 给测试用例打标记​编辑

1.3 运行标记的测试用例

1.4 运行多个标记的测试用例

1.5 运行指定标记以外的所有测试用例

2. 内置标签

2.1 skip :无条件跳过(可使用在方法,类,模块上)

2.2 skipif:有条件跳过(可使用在方法,类,模块上)

2.2.1 使用True和False情况进行验证

2.2.2 条件字符串的形式验证​编辑

2.3 xfail :预期失败(用例执行过程中直接标记用例结果为XFAIL,不会执行后面的代码)

2.3.1 xfail-预期内失败,xpass-预期失败,实际成功

2.3.2 raises:异常类型,默认值为None

2.3.3 run:默认值为True

2.3.4 strict:默认值为False

2.4 usefixtures:执行fixture

2.4.1 在方法上使用夹具

2.4.2 在类上使用夹具​编辑

2.5 parametrize:参数执行

2.5.1 argnames和argvalues

2.5.2 indirect:参数值为True,False

2.5.3 ids


1. 用户自定义标记

1.1 注册标记

1.2 给测试用例打标记

1.3 运行标记的测试用例

1.4 运行多个标记的测试用例

1.5 运行指定标记以外的所有测试用例

2. 内置标签

2.1 skip :无条件跳过(可使用在方法,类,模块上)

@pytest.mark.skip(reason=None) 

reason:str类型,默认值为None,可以添加跳过测试用例原因的描述信息

2.2 skipif:有条件跳过(可使用在方法,类,模块上)

@pytest.mark.skipif(condition, *, reason=None)

condition:条件(可以为True,False或者条件字符串)。条件为真则跳过用例;条件为假则执行用例;使用condition参数的时候,必须有参数reason,否则会报错

2.2.1 使用True和False情况进行验证

2.2.2 条件字符串的形式验证

2.3 xfail :预期失败(用例执行过程中直接标记用例结果为XFAIL,不会执行后面的代码)

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

2.3.1 xfail-预期内失败,xpass-预期失败,实际成功

2.3.2 raises:异常类型,默认值为None

如果测试用例执行失败,出现的异常类型在raises里,则不会抛出异常,测试用例标记为XFAIL;如果测试用例执行失败,出现raises之外的异常,则测试用例标记为FAILED,并抛出异常信息

2.3.3 run:默认值为True

当run=False时候,直接将测试用例标记为XFAIL不执行测试用例

2.3.4 strict:默认值为False

当strict=False时,如果用例执行失败,结果标记为XFAIL,表示符合预期的失败;如果用例执行成功,结果标记为XPASS,表示不符合预期的成功;当strict=True时,如果用例执行成功,结果将标记为FAILED;可以在pytest.ini文件中配置:xfail_strict=true

2.4 usefixtures:执行fixture

pytest.mark.usefixtures(name)

name:夹具名

2.4.1 在方法上使用夹具

2.4.2 在类上使用夹具

2.5 parametrize:参数执行

@pytest.mark.parametrize(argnames, argvalues, indirect=False, ids=None, scope=None, *, _param_mark=None)

2.5.1 argnames和argvalues

argnames:参数名,以逗号分隔的字符串,表示一个或多个参数

argvalues:参数值,参数组成的列表,列表中有几个元素,就会生成几条用例

2.5.2 indirect:参数值为True,False

一般与Pytest的fixture,request.param组合使用

注意需要fixture,request.param组合使用

2.5.3 ids

标记参数化测试用例的执行名称,默认自动生成,多个参数名之间用"-"连接

如果输出的 ids参数用例描述有中文编码问题,在pytest.ini文件中添加:

disable_test_id_escaping_and_forfeit_all_rights_to_community_support = True

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值