寫在前面
文檔中一部分摘抄了pytest中文文檔和百度的搜索結(jié)果壁顶,記錄下來方便自己以后查閱。
參數(shù)選項(xiàng)
-s
允許運(yùn)行的時(shí)候打印輸出(print)
pytest -s
--collect-only
Pytest --collect-only
-k
運(yùn)行所有包含關(guān)鍵詞的測(cè)試
pytest -k "keyword"
-m
運(yùn)行指定標(biāo)簽的用例忱屑,多個(gè)標(biāo)簽以逗號(hào)間隔
設(shè)置標(biāo)簽:
@pytest.mark.mark1
def test_01_testcase()
pytet -m mark1颠毙, 即可運(yùn)行有該標(biāo)簽的test_01_testcase用例
-x
運(yùn)行失敗時(shí)停止測(cè)試執(zhí)行
pytest -x
--tb=no
不打印報(bào)錯(cuò)信息
--maxfail=num
規(guī)定最大失敗次數(shù)魔招,如果超過失敗次數(shù)則停止測(cè)試
pytest --maxfail=3
-v
pytest -v
執(zhí)行當(dāng)前路徑下的測(cè)試用例并顯示詳細(xì)信息
--lf
運(yùn)行結(jié)束后會(huì)運(yùn)行本次失敗的用例
--ff
運(yùn)行結(jié)束后如有失敗的用例姻乓,重新執(zhí)行所有用例
日志
pytest默認(rèn)捕獲WARNING或以上級(jí)別的日志并在測(cè)試結(jié)束后輸出
如果要格式化日志和時(shí)間:
pytest ‐‐log‐format="%(asctime)s %(levelname)s %(message)s" ‐‐log‐date‐format="%Y‐%m‐%d %H:%M:%S"
也可在pytest.ini中設(shè)置:
[pytest]
log_format = %(asctime)s %(levelname)s %(message)s
log_date_format = %Y‐%m‐%d %H:%M:%S
API
pytest.approx
approx(expected, rel=None, abs=None, nan_ok=False)
判斷兩個(gè)或兩組數(shù)字在允許范圍內(nèi)是否相等
pytest.fail
fail(msg="", pytrace=True)
msg: 顯示給用戶的失敗消息
pytrace: 如果設(shè)置為False嵌溢,則使用msg作為完整的失敗信息而不顯示traceback
skip
跳過某個(gè)測(cè)試
@pytest.mark.skip(reason="跳過原因")
skipif
有條件的跳過某個(gè)測(cè)試
@pytest.mark.skipif(python表達(dá)式眯牧,跳過條件)
xfail
意料之中的失敗蹋岩,如果用例執(zhí)行成功,測(cè)試結(jié)果為失敗
@pytest.mark.xfail(strict=True)
raises
@pytest.mark.xfail(raises=Error)
如測(cè)試失敗学少,raise指定Error