pytest fail的使用
1. @pytest.mark.xfail
標(biāo)記用例,標(biāo)記期望這個(gè)用例執(zhí)行失敗
帶有次標(biāo)記的用例,會(huì)正常執(zhí)行,只是失敗,不會(huì)顯示堆棧信息。
用例執(zhí)行結(jié)果:
- 用例執(zhí)行失敗,XFAIL,符合預(yù)期的結(jié)果
- 用例執(zhí)行成功,XPASS,不符合預(yù)期結(jié)果
@pytest.mark.xfail
def test_1():
...
pytest.mark.xfail參數(shù)說(shuō)明
condition: 如果滿(mǎn)足條件,那么就標(biāo)記用例執(zhí)行失敗
reason: 表明失敗原因
raises: 默認(rèn)None,可指定一個(gè)異常類(lèi)或者異常類(lèi)元組,表明我們期望用例拋出這些異常。如果用例失敗不是因?yàn)檫@些異常,那么用例會(huì)執(zhí)行失敗,并標(biāo)記為FAILED。
run: 默認(rèn)值為T(mén)rue,若為False,則用例不執(zhí)行,直接標(biāo)記為XFAIL
strict:默認(rèn)值False,
strict=False,如用例執(zhí)行失敗,標(biāo)記為XFAIL,用例執(zhí)行成功標(biāo)記為XPASS
strict=True,如果用例執(zhí)行成功,標(biāo)記為FAILED,而不再是XPASS
2. pytest.xfail
在用例中標(biāo)記用例執(zhí)行失敗,可在setup/case/teardown中使用
def test_1():
if ...:
pytest.xfail('failed')
...
當(dāng)在固定的條件下,像已知的bug或者特性下,使用@pytest.mark.xfail是比較好的
3. 命令行選項(xiàng)
pytest --runxfail,使標(biāo)記過(guò)的xfail的用例正常運(yùn)行,就像沒(méi)有標(biāo)記過(guò)一樣,其中pytest.xfail()也會(huì)失效