###文章内容有配套的 学习视频和笔记都放在了文章末尾###
Pytest预期失败需要使用@pytest.mark.xfail()
标记。
期望测试用例是失败的,但是会运行此测试用例,并且也不会影响其他测试用例的的执行。(即xfail标记并不会影响用例的运行)
如果预期失败的测试用例执行失败的则结果是xfail
(不会额外显示出错误信息)
如果测试用例执行成功的则结果是xpass
。
在报告中会将这些用例列在“预期失败XFAIL
或意外传递XPASS
部分。
@pytest.mark.xfail(self,condition=None, reason=None, raises=None, run=True, strict=False)
。
condition
: 如果满足条件则标记用例执行失败, 默认为True
。condition
表示预期结果,然后用例实际执行的结果,与预期结果对比,会出现4种测试结果状态。failed
, passed
, xfailed
, xpassed
。condition=1>2
等。reason
:说明用例标记为预期失败的原因, 默认为None
。(必填)raises=None
:在raises参数中指定单个异常或异常组,表明期望用例抛出这些异常。failed
。raises
参数标识的异常一致,则标记为xfailed
。@pytest.mark.xfail(raises=AssertionError)
def test_03():assert 3 == 4@pytest.mark.xfail(raises=ValueError)
def test_04():if isinstance('1234', int) is False:raise TypeError("传入参数非整数")
一般很少这样用,会使用pytest.raises
先抛出接口异常,再断言异常信息是否符合预期。
run
:标识是否执行此用例, 若为True
则执行,若为False
则用例不执行用例,直接标记该用力为XFAIL
,(防止在xfail
死循环。)strict
:strict
默认为False。当strict=True
时,如果测试用例被标识为xpass
,则把该用例标识为失败fail
。strict
属性值,在全局配置文件pytest.ini
中添加一行配置:xfail_strict=true
即可,作用是一样的。"""
1.学习目标了解预期失败方法
2.操作步骤2.1 xfail(condition,reason)condition:当condition条件为真,用例标记失败reason: 原因3.使用xfail标识用例可能出现的情况:条件 用例执行结果 测试结果True False FAILEDTrue True PASSEDFalse False XFAILFalse True XPASS"""
# 1.导入pytest
import pytest# 2.编写测试用例
# 预期失败,结果失败
@pytest.mark.xfail(True, reason="该功能尚未完成")
def test_case_1():print("预期失败,结果失败")pytest.xfail()assert False# 预期失败,结果成功
@pytest.mark.xfail(True, reason="该功能尚未计划")
def test_case_2():print("预期失败,结果成功")assert True# 预期成功,结果失败
@pytest.mark.xfail(False, reason="")
def test_case_3():print("预期成功,结果失败")assert False# 预期成功,结果成功
@pytest.mark.xfail(False, reason="")
def test_case_4():print("预期成功,结果成功")assert Trueif __name__ == '__main__':pytest.main()"""
运行结果:
test_01.py::test_case_1 预期失败,结果失败
XFAIL
test_01.py::test_case_2 预期失败,结果成功
XPASS (该功能尚未计划)
test_01.py::test_case_3 预期成功,结果失败
FAILED
test_01.py::test_case_4 预期成功,结果成功
PASSED============== 1 failed, 1 passed, 1 xfailed, 1 xpassed in 0.09s ==============说明:
x(小写x)预期失败,结果失败 1 xfailed(预期失败)
X(大写X)预期失败,结果成功 1 xpassed(预期成功)
F预期成功,结果失败 1 failed
.预期成功,结果成功 1 passed
在测试执行过程中,会将xpassed状态的用例直接转成failed状态
"""
xfail
标识执行命令:pytest --runxfail
,也就是--runxfail
参数可以将全部@pytest.mark.xfail()
标识忽略掉。
那么在这里我也精心准备了上述大纲的详细资料在下方链接如下
本文发布于:2024-02-03 05:00:19,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170690761948812.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |