日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

pytest用例執行順序和跳過執行詳解_python

作者:此時 ? 更新時間: 2023-04-11 編程語言

1.py文件的執行順序

pytest默認按字母順序去執行的(小寫英文--->大寫英文--->0-9數字)

setup_module->setup_claas->setup_function->testcase->teardown_function->teardown_claas->teardown_module

1)文件之間按照ASCLL碼排序

2)文件內默認按照從上到下進行執行

文件內的用例按照從上往下執行。

2. 改變用例的執行順序 -裝飾器@pytest.mark.run(order=x)

@pytest.mark.run(order=x) 需要pip install pytest-ordering

@pytest.mark.run(order=x)

# x是整數(可以是正數也可以是負數)

# 全為正數或負數時,值越小,優先級越高

# 既有正數又有負數時,正數優先級高(-1,2,-3的執行順序是2,-3,-1)

# 0是正整數中最小的,優先級最高

@pytest.mark.run(order=0)

# 兩個0是,就按照正常順序執行

已經改變了用例執行規則,針對于是全局的,會先執行完@pytest.mark.run(order=1)才會執行order=2的用例

其實總體來說,這個插件的實用場景不是很多,如果需要指定某個用例第一個執行和最后執行,可以用該插件實現。

如果要按照你指定的順序執行下去,需要在每個用例前都加上@pytest.mark.run(order=1),其中order中的數字需遞增。

 

方式一

方式二

方式三

第一個執行

:@ pytest.mark.first

:@ pytest.mark.run('first')

:@ pytest.mark.run(order=1)

第二個執行

:@ pytest.mark.second

:@ pytest.mark.run('second')

:@ pytest.mark.run(order=2)

倒數第二個執行

:@ pytest.mark.second_to_last

:@ pytest.mark.run('second_to_last')

:@ pytest.mark.run(order=-2)

最后一個執行

:@pytest.mark.last

:@ pytest.mark.run('last')

:@ pytest.mark.run(order=-1)

3. 分組執行用例

在工作中有的時候我們并不需要執行所有用例,所以就會用到分組執行啦。

這里同樣也要用到裝飾器@pytest.mark

1)在pytest.ini中配置分組

[pytest]
markers=g1
g2

這個設置的作用就是標記用例進行分組

2)測試用例加入標記

3)運行用例

需要輸入pytest -m '分組名'

4) 多個分組用例運行需要用or進行連接

5)運行除標記外的用例

pytest.main(['-vs', 'zmytest/test_order.py', '-m', "not g2 and not g1"])

4. pytest跳過測試用例

pytest.mark.skip:跳過用例執行

跳過執行,跳過分為有條件跳過和無條件跳過

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='')這個方法就是當滿足條件時跳過被標記的用例,什么是被標記?就是這個裝飾器下面的第一條用例

原文鏈接:https://blog.csdn.net/lzmlc0109/article/details/128829149

欄目分類
最近更新