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

目录

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 注册标记从0开始python学习-32.pytest.mark()_第1张图片

1.2 给测试用例打标记从0开始python学习-32.pytest.mark()_第2张图片

1.3 运行标记的测试用例

从0开始python学习-32.pytest.mark()_第3张图片

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

从0开始python学习-32.pytest.mark()_第4张图片

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

从0开始python学习-32.pytest.mark()_第5张图片

2. 内置标签

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

@pytest.mark.skip(reason=None) 

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

从0开始python学习-32.pytest.mark()_第6张图片

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

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

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

从0开始python学习-32.pytest.mark()_第7张图片

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

从0开始python学习-32.pytest.mark()_第8张图片

2.2.2 条件字符串的形式验证从0开始python学习-32.pytest.mark()_第9张图片

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

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

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

从0开始python学习-32.pytest.mark()_第10张图片

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

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

从0开始python学习-32.pytest.mark()_第11张图片

2.3.3 run:默认值为True

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

从0开始python学习-32.pytest.mark()_第12张图片

2.3.4 strict:默认值为False

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

从0开始python学习-32.pytest.mark()_第13张图片从0开始python学习-32.pytest.mark()_第14张图片

2.4 usefixtures:执行fixture

pytest.mark.usefixtures(name)

name:夹具名从0开始python学习-32.pytest.mark()_第15张图片

2.4.1 在方法上使用夹具

从0开始python学习-32.pytest.mark()_第16张图片

2.4.2 在类上使用夹具从0开始python学习-32.pytest.mark()_第17张图片

2.5 parametrize:参数执行

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

2.5.1 argnames和argvalues

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

argvalues:参数值,参数组成的列表,列表中有几个元素,就会生成几条用例从0开始python学习-32.pytest.mark()_第18张图片

2.5.2 indirect:参数值为True,False

一般与Pytest的fixture,request.param组合使用从0开始python学习-32.pytest.mark()_第19张图片

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

从0开始python学习-32.pytest.mark()_第20张图片

2.5.3 ids

标记参数化测试用例的执行名称,默认自动生成,多个参数名之间用"-"连接从0开始python学习-32.pytest.mark()_第21张图片

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

disable_test_id_escaping_and_forfeit_all_rights_to_community_support = True

从0开始python学习-32.pytest.mark()_第22张图片

你可能感兴趣的:(python,学习,python,测试工具,pytest)