目录
2.2 skipif:有条件跳过(可使用在方法,类,模块上)
2.3 xfail :预期失败(用例执行过程中直接标记用例结果为XFAIL,不会执行后面的代码)
2.3.1 xfail-预期内失败,xpass-预期失败,实际成功
1. 用户自定义标记
1.1 注册标记![](https://i-blog.csdnimg.cn/blog_migrate/4ba37195ec50d5fa255e80a55dbca21a.png)
1.2 给测试用例打标记![](https://i-blog.csdnimg.cn/blog_migrate/38a2c5642048768644620a01a91557c9.png)
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 条件字符串的形式验证![](https://i-blog.csdnimg.cn/blog_migrate/6e90633ff49cb37d0dbfe690860c5d18.png)
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 在类上使用夹具![](https://i-blog.csdnimg.cn/blog_migrate/79063eba73b9157165e494e15eb4aa3c.png)
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