|
一、pytest測(cè)試用例規(guī)則 1. 模塊名必須以test_開頭或_test結(jié)尾 2. 測(cè)試類必須以Test開頭且不能有init方法 3. 測(cè)試方法必須以test開頭
二、pytest測(cè)試用例運(yùn)行方式 1、主函數(shù)模式 a) 運(yùn)行所有:pytest.main()
b) 指定模塊/目錄:pytest.main(['-s', '指定模塊名.py'])【注:如果指定模塊為package包下所有文件,則傳package路徑即可】 c)通過nodeid指定用例運(yùn)行:nodeid由模塊名、分隔符、類名、方法名、函數(shù)名組成。例如: pytest.main(['-s', '路徑/指定模塊名.py::類名::方法名']) 2、命令行模式 a) 運(yùn)行所有:pytest b) 指定模塊/目錄:pytest -s 指定模塊名.py【注:如果指定模塊為package包下所有文件,則傳package路徑即可】 3、讀取pytest.ini配置文件【**實(shí)際中需要用到,最重要**】 pytest.ini這個(gè)文件是pytest單元測(cè)試框架的配置文件。
位置:一般放在項(xiàng)目根目錄,且名字不能改
編碼:必須是ANSI,可以用notepad++修改編碼格式 作用:可以改變pytest默認(rèn)的行為(比如你不想用例以test開頭,那就來這里改) 運(yùn)行規(guī)則:不管用主函數(shù)還是命令行模式運(yùn)行,都會(huì)讀取配置文件。 寫法:
根目錄下新建pytest.ini文件 【注:方便大家理解,使用時(shí)建議把中文注釋刪掉】 
執(zhí)行測(cè)試用例時(shí)如果提示

即編碼錯(cuò)誤??梢酝ㄟ^notepad++打開這個(gè)文件,然后修改編碼為ANSI(建議把中文注釋刪掉) 
三、參數(shù)詳解(以列表list方式傳參) -s輸出用例調(diào)試信息包括print的內(nèi)容
-v除了輸出調(diào)試信息,還會(huì)顯示類名用例方法名
-vs-v和-s結(jié)合到一起
-n支持多線程或分布式運(yùn)行;例:
pytest.main(['-vs', 'testcase/', '-n=2'])
或 pytest -vs ./testcase -n 2 --reruns失敗后重跑,需要安裝pytest-rerunfailures庫,語法:pytest.main(['-vs', 'testcase/', '--reruns=2'])用例執(zhí)行失敗時(shí),會(huì)重復(fù)執(zhí)行2次。
-x只要有一個(gè)用例報(bào)錯(cuò),則用例停止。語法:
pytest.main(['-vs', 'testcase/', '-x']) --maxfail最多報(bào)錯(cuò)后停止。上面-x是一個(gè)報(bào)錯(cuò)就停止,這個(gè)是最多能接受多少個(gè)用例報(bào)錯(cuò)。語法:--maxfail=2 -k 根據(jù)測(cè)試用例的部分字符串指定測(cè)試用例。語法: pytest.main(['-vs', 'testcase/', '-k', '用例名中的字符'])
三、pytest執(zhí)行測(cè)試用例的順序
unittest:根據(jù)ASCII的大小來決定執(zhí)行順序
pytest:默認(rèn)從上到下。如果不想從上到下執(zhí)行,則可以通過加標(biāo)記的方式: @pytest.mark.run(order=n)

如果你也想從0學(xué)習(xí)pytest,關(guān)注我吧~
|