Pytest中skip和skipif的具體使用方法
skip的用法
使用示例:@pytest.mark.skip(reason="跳過的原因,會(huì)在執(zhí)行結(jié)果中打印")
標(biāo)記在測(cè)試函數(shù)中
舉個(gè)🌰
import pytest
def test_1():
print("測(cè)試用例1")
@pytest.mark.skip(reason="沒寫完,不執(zhí)行此用例")
def test_2():
print("測(cè)試用例2")
執(zhí)行結(jié)果如下:

標(biāo)記在測(cè)試類的測(cè)試用例中
舉個(gè)🌰
import pytest
class TestCase(object):
def test_1(self):
print("測(cè)試用例1")
@pytest.mark.skip(reason="沒寫完,不執(zhí)行此用例")
def test_2(self):
print("測(cè)試用例2")
執(zhí)行結(jié)果如下

標(biāo)記在測(cè)試類方法上
舉個(gè)🌰
import pytest
@pytest.mark.skip(reason="沒寫完,不執(zhí)行此用例")
class TestCase1(object):
def test_1(self):
print("測(cè)試用例1")
def test_2(self):
print("測(cè)試用例2")
class TestCase2(object):
def test_3(self):
print("測(cè)試用例3")
def test_4(self):
print("測(cè)試用例4")
執(zhí)行結(jié)果如下

總結(jié)
- @pytest.mark.skip 可以加在函數(shù)上,類上,類方法上
- 如果加在類上面,則類里面的所有測(cè)試用例都不會(huì)執(zhí)行
在測(cè)試用例執(zhí)行期間強(qiáng)制跳過
以一個(gè)for循環(huán)為例,執(zhí)行到第3次的時(shí)候跳出
import pytest
def test_demo():
for i in range(50):
print(f"輸出第【{i}】個(gè)數(shù)")
if i == 3:
pytest.skip("跑不動(dòng)了,不再執(zhí)行了")
執(zhí)行結(jié)果如下

在模塊級(jí)別跳過測(cè)試用例
語法:pytest.skip(msg="",allow_module_level=False)
當(dāng)allow_module_level=True時(shí),可以設(shè)置在模塊級(jí)別跳過整個(gè)模塊
import pytest
pytest.skip("跳過整個(gè)模塊", allow_module_level=True)
@pytest.fixture(autouse=True)
def test_1():
print("執(zhí)行測(cè)試用例1")
def test_2():
print("執(zhí)行測(cè)試用例2")
執(zhí)行結(jié)果如下

有條件的跳過某些用例
語法:@pytest.mark.skipif(condition, reason="")
import sys
import pytest
@pytest.mark.skipif(sys.platform == 'darwin', reason="does not run on MacOS")
class TestSkipIf(object):
def test_demo(self):
print("不能在MacOS上運(yùn)行")
注意:condition需要返回True才會(huì)跳過
執(zhí)行結(jié)果如下:

跳過標(biāo)記的使用
- 可以將 pytest.mark.skip 和 pytest.mark.skipif 賦值給一個(gè)標(biāo)記變量
- 在不同模塊之間共享這個(gè)標(biāo)記變量
- 若有多個(gè)模塊的測(cè)試用例需要用到相同的 skip 或 skipif ,可以用一個(gè)單獨(dú)的文件去管理這些通用標(biāo)記,然后適用于整個(gè)測(cè)試用例集
舉個(gè)🌰
import sys
import pytest
skipmark = pytest.mark.skip(reason="不執(zhí)行此用例")
skipifmark = pytest.mark.skipif(sys.platform == 'darwin', reason="does not run on MacOS")
@skipifmark
class TestSkipIf(object):
def test_demo(self):
print("不能在MacOS上運(yùn)行")
@skipmark
def test_1():
print("測(cè)試用例1")
def test_2():
print("測(cè)試用例2")
執(zhí)行結(jié)果如下

當(dāng)缺少某些導(dǎo)入時(shí)跳過用例
語法:
pytest.importorskip( modname: str, minversion: Optional[str] = None, reason: Optional[str] = None )
參數(shù):
- modname: 需要被導(dǎo)入的模塊名稱,比如 selenium;
- minversion: 表示需要導(dǎo)入的最小的版本號(hào),如果該版本不達(dá)標(biāo),將會(huì)打印出報(bào)錯(cuò)信息;
- reason: 只有當(dāng)模塊沒有被導(dǎo)入時(shí),給定該參數(shù)將會(huì)顯示出給定的消息內(nèi)容
找不到對(duì)應(yīng)module
舉個(gè)🌰
import pytest
rock = pytest.importorskip("rock")
@rock
def test_1():
print("測(cè)試是否導(dǎo)入了rock模塊")
運(yùn)行結(jié)果

如果版本不達(dá)標(biāo)
舉個(gè)🌰
import pytest
sel = pytest.importorskip("selenium", minversion="3.150")
@sel
def test_1():
print("測(cè)試是否導(dǎo)入了selenium模塊")
運(yùn)行結(jié)果

整理參考
到此這篇關(guān)于Pytest中skip和skipif的具體使用方法的文章就介紹到這了,更多相關(guān)skip和skipif的使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
django實(shí)現(xiàn)支付寶支付實(shí)例講解
在本篇文章里小編給大家整理的是一篇關(guān)于django支付寶支付的代碼實(shí)例內(nèi)容,需要的朋友們可以學(xué)習(xí)下。2019-10-10
Python實(shí)現(xiàn)哲學(xué)家就餐問題實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于Python實(shí)現(xiàn)哲學(xué)家就餐問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
Django創(chuàng)建一個(gè)后臺(tái)的基本步驟記錄
這篇文章主要給大家介紹了關(guān)于Django創(chuàng)建一個(gè)后臺(tái)的基本步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
Python進(jìn)程間通訊與進(jìn)程池超詳細(xì)講解
進(jìn)程彼此之間互相隔離,要實(shí)現(xiàn)進(jìn)程間通信(IPC),multiprocessing模塊主要通過隊(duì)列方式,隊(duì)列:隊(duì)列類似于一條管道,元素先進(jìn)先出,需要注意的一點(diǎn)是:隊(duì)列都是在內(nèi)存中操作,進(jìn)程退出,隊(duì)列清空,另外,隊(duì)列也是一個(gè)阻塞的形態(tài)2022-12-12
Python使用pandas對(duì)數(shù)據(jù)進(jìn)行差分運(yùn)算的方法
今天小編就為大家分享一篇Python使用pandas對(duì)數(shù)據(jù)進(jìn)行差分運(yùn)算的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-12-12
Windows平臺(tái)Python編程必會(huì)模塊之pywin32介紹
在Windows平臺(tái)上,從原來使用C/C++編寫原生EXE程序,到使用Python編寫一些常用腳本程序,成熟的模塊的使用使得編程效率大大提高了2019-10-10
用python3 返回鼠標(biāo)位置的實(shí)現(xiàn)方法(帶界面)
今天小編就為大家分享一篇用python3 返回鼠標(biāo)位置的實(shí)現(xiàn)方法(帶界面),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-07-07
Python實(shí)現(xiàn)Opencv cv2.Canny()邊緣檢測(cè)
這篇博客將介紹Canny邊緣檢測(cè)的概念,并利用cv2.Canny()實(shí)現(xiàn)邊緣檢測(cè),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07

