欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Pytest中skip和skipif的具體使用方法

 更新時(shí)間:2021年06月30日 16:11:01   作者:RockChe  
在實(shí)際的測(cè)試中,我們經(jīng)常會(huì)遇到需要跳過(guò)某些測(cè)試用例的情況,pytest提供了skip和ifskip來(lái)跳過(guò)測(cè)試.下面我們就來(lái)通過(guò)一些例子看看skip和ifskip具體如何使用吧,需要的朋友可以參考下

skip的用法

使用示例:@pytest.mark.skip(reason="跳過(guò)的原因,會(huì)在執(zhí)行結(jié)果中打印")

標(biāo)記在測(cè)試函數(shù)中

舉個(gè)🌰

import pytest


def test_1():
    print("測(cè)試用例1")


@pytest.mark.skip(reason="沒(méi)寫(xiě)完,不執(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="沒(méi)寫(xiě)完,不執(zhí)行此用例")
    def test_2(self):
        print("測(cè)試用例2")

執(zhí)行結(jié)果如下

標(biāo)記在測(cè)試類方法上

舉個(gè)🌰

import pytest


@pytest.mark.skip(reason="沒(méi)寫(xiě)完,不執(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)制跳過(guò)

以一個(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í)別跳過(guò)測(cè)試用例

語(yǔ)法:pytest.skip(msg="",allow_module_level=False)

當(dāng)allow_module_level=True時(shí),可以設(shè)置在模塊級(jí)別跳過(guò)整個(gè)模塊

import pytest

pytest.skip("跳過(guò)整個(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é)果如下

有條件的跳過(guò)某些用例

語(yǔ)法:@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ì)跳過(guò)

執(zhí)行結(jié)果如下:

跳過(guò)標(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í)跳過(guò)用例

語(yǔ)法:

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)模塊沒(méi)有被導(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é)果

整理參考

小菠蘿的測(cè)試筆記

到此這篇關(guān)于Pytest中skip和skipif的具體使用方法的文章就介紹到這了,更多相關(guān)skip和skipif的使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python數(shù)據(jù)分析之pandas函數(shù)詳解

    Python數(shù)據(jù)分析之pandas函數(shù)詳解

    這篇文章主要介紹了Python數(shù)據(jù)分析之pandas函數(shù)詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的pandas函數(shù)的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-04-04
  • Python使用百度翻譯開(kāi)發(fā)平臺(tái)實(shí)現(xiàn)英文翻譯為中文功能示例

    Python使用百度翻譯開(kāi)發(fā)平臺(tái)實(shí)現(xiàn)英文翻譯為中文功能示例

    這篇文章主要介紹了Python使用百度翻譯開(kāi)發(fā)平臺(tái)實(shí)現(xiàn)英文翻譯為中文功能,結(jié)合實(shí)例形式分析了Python使用request請(qǐng)求與百度翻譯API接口交互實(shí)現(xiàn)翻譯功能相關(guān)操作技巧,需要的朋友可以參考下
    2019-08-08
  • Python中NameError: name ‘Image‘ is not defined的問(wèn)題解決

    Python中NameError: name ‘Image‘ is not&nb

    本文主要介紹了Python中NameError: name ‘Image‘ is not defined的問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • NumPy中np.c_ 和 np.r_ 的區(qū)別小結(jié)

    NumPy中np.c_ 和 np.r_ 的區(qū)別小結(jié)

    np.c_和?np.r_是NumPy庫(kù)中兩個(gè)非常有用的函數(shù),它們分別用于按列和按行拼接數(shù)組本文主要介紹了NumPy中np.c_ 和 np.r_ 的區(qū)別小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • pytorch中的廣播語(yǔ)義

    pytorch中的廣播語(yǔ)義

    這篇文章主要介紹了pytorch中的廣播語(yǔ)義,pytorch的廣播語(yǔ)義即broadcasting semantics,和numpy的很像,下面文章介紹更多相關(guān)內(nèi)容的介紹,需要的小伙伴可以參考一下
    2022-03-03
  • python中循環(huán)語(yǔ)句while用法實(shí)例

    python中循環(huán)語(yǔ)句while用法實(shí)例

    這篇文章主要介紹了python中循環(huán)語(yǔ)句while用法,實(shí)例分析了while語(yǔ)句的使用方法,需要的朋友可以參考下
    2015-05-05
  • Pytest?Fixture參數(shù)講解及使用

    Pytest?Fixture參數(shù)講解及使用

    這篇文章主要介紹了Pytest之Fixture參數(shù)詳解及使用,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-01-01
  • 關(guān)于Python中的向量相加和numpy中的向量相加效率對(duì)比

    關(guān)于Python中的向量相加和numpy中的向量相加效率對(duì)比

    今天小編就為大家分享一篇關(guān)于Python中的向量相加和numpy中的向量相加效率對(duì)比,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • Django ORM 聚合查詢和分組查詢實(shí)現(xiàn)詳解

    Django ORM 聚合查詢和分組查詢實(shí)現(xiàn)詳解

    這篇文章主要介紹了Django ORM 聚合查詢和分組查詢實(shí)現(xiàn)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • python類特殊方法使用示例講解

    python類特殊方法使用示例講解

    這篇文章主要為大家介紹了python類特殊方法使用示例講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06

最新評(píng)論