pytest -- xfail

pytest fail的使用

1. @pytest.mark.xfail

標(biāo)記用例,標(biāo)記期望這個(gè)用例執(zhí)行失敗
帶有次標(biāo)記的用例,會(huì)正常執(zhí)行,只是失敗,不會(huì)顯示堆棧信息。
用例執(zhí)行結(jié)果:

  1. 用例執(zhí)行失敗,XFAIL,符合預(yù)期的結(jié)果
  2. 用例執(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ì)失效

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容