pytest入門到放棄11--xfail處理無法成功的測試
阿新 • • 發佈:2020-08-20
xfail 原始碼如下:
def xfail(self,condition=None, reason=None, raises=None, run=True, strict=False): """mark the the test function as an expected failure if eval(self,condition) has a True value. # 將eval(self,condition)為真的測試函式標記為失敗。 Optionally specify a reason for better reporting and run=False if you don't even want to execute the test function. # 不想執行某個測試功能,可以指定 run=False,可以自定義錯誤原因 reason=‘’ See http://doc.pytest.org/en/latest/skipping.html # 官方文件說明"""
xfail 作用:
1)標記無法在某些平臺上執行或預期會失敗的測試功能,不在測試報告中顯示失敗(不顯示 F)
2)當需要所有測試都通過時,可以使用 xfail
3)xfail 使用pytest.mark.xfail 來標記預期會失敗的用例,用 x 標記代替 F,且無錯誤資訊輸出
4)通過 -r 顯示 xfail、skip 詳細資訊 pytest -r
使用 xfail:
@pytest.mark.parametrize('a, b, c', [(4, 2, 2), (0, 2, 0), pytest.param(1, 0, 0, marks=pytest.mark.xfail), (6, 8, 0)], ids=['整除', '被除數為0', '除數為0', '非整除']) def test_1(a, b, c): res = division(a, b) assert res == c
執行結果(用 x 標記了 F):
E:\personal\python38\python.exe E:/personal/GitWorkSpace/pytest_basic/main.py test_demo_10.py::test_1[整除] test_demo_10.py::test_1[被除數為0] test_demo_10.py::test_1[除數為0] test_demo_10.py::test_1[非整除] ..x.3 passed, 1 xfailed in 0.14s