pytest用例執(zhí)行順序和跳過執(zhí)行詳解
1.py文件的執(zhí)行順序
pytest默認按字母順序去執(zhí)行的(小寫英文--->大寫英文--->0-9數(shù)字)
setup_module->setup_claas->setup_function->testcase->teardown_function->teardown_claas->teardown_module
1)文件之間按照ASCLL碼排序
2)文件內(nèi)默認按照從上到下進行執(zhí)行
文件內(nèi)的用例按照從上往下執(zhí)行。
2. 改變用例的執(zhí)行順序 -裝飾器@pytest.mark.run(order=x)
@pytest.mark.run(order=x) 需要pip install pytest-ordering
@pytest.mark.run(order=x) # x是整數(shù)(可以是正數(shù)也可以是負數(shù)) # 全為正數(shù)或負數(shù)時,值越小,優(yōu)先級越高 # 既有正數(shù)又有負數(shù)時,正數(shù)優(yōu)先級高(-1,2,-3的執(zhí)行順序是2,-3,-1) # 0是正整數(shù)中最小的,優(yōu)先級最高 @pytest.mark.run(order=0) # 兩個0是,就按照正常順序執(zhí)行
已經(jīng)改變了用例執(zhí)行規(guī)則,針對于是全局的,會先執(zhí)行完@pytest.mark.run(order=1)才會執(zhí)行order=2的用例
其實總體來說,這個插件的實用場景不是很多,如果需要指定某個用例第一個執(zhí)行和最后執(zhí)行,可以用該插件實現(xiàn)。
如果要按照你指定的順序執(zhí)行下去,需要在每個用例前都加上@pytest.mark.run(order=1),其中order中的數(shù)字需遞增。
| 方式一 | 方式二 | 方式三 |
第一個執(zhí)行 | :@ pytest.mark.first | :@ pytest.mark.run('first') | :@ pytest.mark.run(order=1) |
第二個執(zhí)行 | :@ pytest.mark.second | :@ pytest.mark.run('second') | :@ pytest.mark.run(order=2) |
倒數(shù)第二個執(zhí)行 | :@ pytest.mark.second_to_last | :@ pytest.mark.run('second_to_last') | :@ pytest.mark.run(order=-2) |
最后一個執(zhí)行 | :@pytest.mark.last | :@ pytest.mark.run('last') | :@ pytest.mark.run(order=-1) |
3. 分組執(zhí)行用例
在工作中有的時候我們并不需要執(zhí)行所有用例,所以就會用到分組執(zhí)行啦。
這里同樣也要用到裝飾器@pytest.mark
1)在pytest.ini中配置分組
[pytest] markers=g1 g2
這個設(shè)置的作用就是標(biāo)記用例進行分組
2)測試用例加入標(biāo)記
3)運行用例
需要輸入pytest -m '分組名'
4) 多個分組用例運行需要用or進行連接
5)運行除標(biāo)記外的用例
pytest.main(['-vs', 'zmytest/test_order.py', '-m', "not g2 and not g1"])
4. pytest跳過測試用例
pytest.mark.skip:跳過用例執(zhí)行
跳過執(zhí)行,跳過分為有條件跳過和無條件跳過
1、無條件跳過
@pytest.mark.skip(reason="XXX")
2、有條件跳過
@pytest.mark.skipif(age>=18,reason='已成年')
1)無條件跳過
@pytest.mark.skip(reason="XXX") @pytest.mark.skip
2)有條件跳過
@pytest.mark.skipif(條件,reason='')這個方法就是當(dāng)滿足條件時跳過被標(biāo)記的用例,什么是被標(biāo)記?就是這個裝飾器下面的第一條用例
到此這篇關(guān)于pytest用例執(zhí)行順序和跳過執(zhí)行詳解的文章就介紹到這了,更多相關(guān)pytest用例執(zhí)行順序和跳過執(zhí)行內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python經(jīng)典趣味24點游戲程序設(shè)計
這篇文章主要介紹了python經(jīng)典趣味24點游戲程序設(shè)計,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07在Python的while循環(huán)中使用else以及循環(huán)嵌套的用法
這篇文章主要介紹了在Python的while循環(huán)中使用else以及循環(huán)嵌套的用法,是Python入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-10-10python GUI庫圖形界面開發(fā)之PyQt5信號與槽多窗口數(shù)據(jù)傳遞詳細使用方法與實例
這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5信號與槽多窗口數(shù)據(jù)傳遞詳細使用方法與實例,需要的朋友可以參考下2020-03-03Python使用Selenium實現(xiàn)瀏覽器打印預(yù)覽功能
在Web開發(fā)中,打印預(yù)覽是一個常見的功能需求,通過打印預(yù)覽,我們可以預(yù)覽和調(diào)整網(wǎng)頁的打印布局、樣式和內(nèi)容,Python的Selenium庫是一個強大的工具,可以自動化瀏覽器操作,包括打印預(yù)覽,本文將介紹如何使用Python Selenium庫來實現(xiàn)瀏覽器的打印預(yù)覽功能2023-11-11六個Python3中使用最廣泛的內(nèi)置函數(shù)總結(jié)
這篇文章主要為大家詳細介紹了六個Python3中使用最廣泛的內(nèi)置函數(shù):Lamdba?函數(shù)、Map?函數(shù)、Filter?函數(shù)、Reduce?函數(shù)、Enumerate?函數(shù)和Zip?函數(shù),需要的可以參考一下2022-08-08anaconda?部署Jupyter?Notebook服務(wù)器過程詳解
這篇文章主要為大家介紹了anaconda?部署Jupyter?Notebook服務(wù)器過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-09-09淺析python實現(xiàn)scrapy定時執(zhí)行爬蟲
這篇文章主要介紹了淺析python實現(xiàn)scrapy定時執(zhí)行爬蟲的相關(guān)資料,需要的朋友可以參考下2018-03-03