pytest -- xfail
2020-08-06 本文已影响0人
irene0_0
pytest fail的使用
1. @pytest.mark.xfail
标记用例,标记期望这个用例执行失败
带有次标记的用例,会正常执行,只是失败,不会显示堆栈信息。
用例执行结果:
- 用例执行失败,XFAIL,符合预期的结果
- 用例执行成功,XPASS,不符合预期结果
@pytest.mark.xfail
def test_1():
...
pytest.mark.xfail参数说明
condition: 如果满足条件,那么就标记用例执行失败
reason: 表明失败原因
raises: 默认None,可指定一个异常类或者异常类元组,表明我们期望用例抛出这些异常。如果用例失败不是因为这些异常,那么用例会执行失败,并标记为FAILED。
run: 默认值为True,若为False,则用例不执行,直接标记为XFAIL
strict:默认值False,
strict=False,如用例执行失败,标记为XFAIL,用例执行成功标记为XPASS
strict=True,如果用例执行成功,标记为FAILED,而不再是XPASS
2. pytest.xfail
在用例中标记用例执行失败,可在setup/case/teardown中使用
def test_1():
if ...:
pytest.xfail('failed')
...
当在固定的条件下,像已知的bug或者特性下,使用@pytest.mark.xfail是比较好的
3. 命令行选项
pytest --runxfail,使标记过的xfail的用例正常运行,就像没有标记过一样,其中pytest.xfail()也会失效