pytest -- xfail

pytest fail的使用

1. @pytest.mark.xfail

标记用例,标记期望这个用例执行失败
带有次标记的用例,会正常执行,只是失败,不会显示堆栈信息。
用例执行结果:

  1. 用例执行失败,XFAIL,符合预期的结果
  2. 用例执行成功,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()也会失效

你可能感兴趣的:(pytest -- xfail)