亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

pytest fixtures裝飾器的使用和如何控制用例的執(zhí)行順序

 更新時(shí)間:2021年01月28日 11:25:32   作者:劍尊  
這篇文章主要介紹了pytest fixtures裝飾器的使用和如何控制用例的執(zhí)行順序,幫助大家更好的理解和使用pytest測(cè)試框架,感興趣的朋友可以了解下

pytest fixtures裝飾器

pytest中可以使用@pytest.fixture 裝飾器來(lái)裝飾一個(gè)方法,被裝飾方法的方法名可以作為一個(gè)參數(shù)傳入到測(cè)試方法中??梢允褂眠@種方式來(lái)完成測(cè)試之前的初始化,也可以返回?cái)?shù)據(jù)給測(cè)試函數(shù)。

將fixture作為函數(shù)參數(shù)

通常使用setup和teardown來(lái)進(jìn)行資源的初始化,如果有這樣一個(gè)場(chǎng)景,測(cè)試用例1需要依賴登入功能,測(cè)試用例2不需要依賴登入功能,測(cè)試用例3需要登入功能,這種場(chǎng)景setup,teardown無(wú)法實(shí)現(xiàn),也可以使用pytest fixture功能,在這個(gè)方法前面加個(gè)@pytest.fixture裝飾器,加了這個(gè)裝飾器的方法可以以參數(shù)的形式傳到方法里,這個(gè)方法就會(huì)先執(zhí)行這個(gè)登入方法,再去執(zhí)行自身的用例步驟,如果沒(méi)有傳入這個(gè)登入方法就不執(zhí)行登入操作,直接執(zhí)行已有的步驟

#!/usr/bin/env python
# _*_coding: utf-8 _*_
import pytest


@pytest.fixture()
def login():
 print("這時(shí)一個(gè)登入的方法")
 return ('tome', '123')


@pytest.fixture()
def operate():
 print("這是登入后的操作")


def test_case1(login, operate):
 print(login)
 print("test_case1,需要登入")


def test_case2():
 print("test_case2,不需要登入")


def test_case3(login):
 print(login)
 print("test_case3,需要登入")

在上面的代碼中,測(cè)試用例test_case1 和test_case3 分別增加了login 方法名作為參數(shù),pytest會(huì)發(fā)現(xiàn)并調(diào)用@pytest.fixture標(biāo)記的login功能,運(yùn)行測(cè)試結(jié)果如下:

Testing started at 10:17 ...
C:\Python\python.exe "C:\Program Files\JetBrains\PyCharm Community Edition 2019.1\helpers\pycharm\_jb_pytest_runner.py" --path C:/Users/wanwen/PycharmProjects/vigo/xuexi/20210123/test_fixture.py
Launching pytest with arguments C:/Users/wanwen/PycharmProjects/vigo/xuexi/20210123/test_fixture.py in C:\Users\wanwen\PycharmProjects\vigo\xuexi\20210123
============================= test session starts =============================
platform win32 -- Python 3.8.0, pytest-5.4.3, py-1.9.0, pluggy-0.13.1
rootdir: C:\Users\wanwen\PycharmProjects\vigo\xuexi\20210123
plugins: html-2.1.1, metadata-1.11.0, ordering-0.6collected 3 items

test_fixture.py 這時(shí)一個(gè)登入的方法
這是登入后的操作
.('tome', '123')
test_case1,需要登入
.test_case2,不需要登入
這時(shí)一個(gè)登入的方法
.('tome', '123')
test_case3,需要登入
              [100%]

============================== 3 passed in 0.04s ==============================

Process finished with exit code 0

從上面結(jié)果可以看出,test_case1 和test_case3 運(yùn)行之前執(zhí)行了login方法,test_case2沒(méi)有執(zhí)行這個(gè)方法。

控制用例的執(zhí)行順序

一、pytest加載所有的用例都是亂序的,如果想指定用例的順序,可以使用pytest-ordering插件,指定用例的執(zhí)行順序只需要在測(cè)試用例的方法前面加上裝飾器@pytest.mark.run(order=[num])設(shè)置order的對(duì)應(yīng)的num值,它就可以按照num的大小順序來(lái)執(zhí)行。

應(yīng)用場(chǎng)景:有時(shí)運(yùn)行測(cè)試用例要指定它的順序,比如有些場(chǎng)景要先需要登入,才能執(zhí)行后面的流程比如購(gòu)物流程,下單流程,這時(shí)就需要指定用例的執(zhí)行順序。通過(guò)pytest-ordering這個(gè)插件可以完成用例順序的指定。

二、安裝

pip install pytest-ordering

三、實(shí)例

#!/usr/bin/env python
# _*_coding: utf-8 _*_
import pytest


class Testpytest(object):

  @pytest.mark.run(order=-1)
  def test_two(self):
    print("test_two, 測(cè)試用例")

  @pytest.mark.run(order=3)
  def test_one(self):
    print("test_one, 測(cè)試用例")

  @pytest.mark.run(order=1)
  def test_three(self):
    print("test_three, 測(cè)試用例")

四、運(yùn)行結(jié)果

Testing started at 15:51 ...
C:\Python\python.exe "C:\Program Files\JetBrains\PyCharm Community Edition 2019.1\helpers\pycharm\_jb_pytest_runner.py" --path C:/Users/wanwen/PycharmProjects/vigo/xuexi/20210123/test_order.py
Launching pytest with arguments C:/Users/wanwen/PycharmProjects/vigo/xuexi/20210123/test_order.py in C:\Users\wanwen\PycharmProjects\vigo\xuexi\20210123
============================= test session starts =============================
platform win32 -- Python 3.8.0, pytest-5.4.3, py-1.9.0, pluggy-0.13.1
rootdir: C:\Users\wanwen\PycharmProjects\vigo\xuexi\20210123
plugins: html-2.1.1, metadata-1.11.0, ordering-0.6collected 3 items

test_order.py                             [100%]

============================== 3 passed in 0.06s ==============================

Process finished with exit code 0
.test_three, 測(cè)試用例
.test_one, 測(cè)試用例
.test_two, 測(cè)試用例

以上就是pytest fixtures裝飾器的使用和如何控制用例的執(zhí)行順序的詳細(xì)內(nèi)容,更多關(guān)于pytest fixtures裝飾器和控制用例的執(zhí)行順序的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 利用Python?實(shí)現(xiàn)圖片轉(zhuǎn)字符畫(huà)

    利用Python?實(shí)現(xiàn)圖片轉(zhuǎn)字符畫(huà)

    這篇文章主要介紹了利用Python?實(shí)現(xiàn)圖片轉(zhuǎn)字符畫(huà),要將圖片轉(zhuǎn)字符畫(huà),需要先定義一個(gè)字符集,用來(lái)和灰度值做映射,將圖片每個(gè)像素的?RGB?值轉(zhuǎn)換為一個(gè)灰度值,將其對(duì)應(yīng)的字符輸出就得到字符畫(huà)
    2022-06-06
  • 使用Python和NLTK進(jìn)行文本預(yù)處理示例詳解

    使用Python和NLTK進(jìn)行文本預(yù)處理示例詳解

    文將介紹如何使用Python編程語(yǔ)言和NLTK(Natural Language Toolkit)庫(kù)進(jìn)行文本預(yù)處理,為后續(xù)的文本分析和機(jī)器學(xué)習(xí)任務(wù)做準(zhǔn)備,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下
    2024-03-03
  • 利用Python實(shí)現(xiàn)崗位的分析報(bào)告

    利用Python實(shí)現(xiàn)崗位的分析報(bào)告

    這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)崗位的分析報(bào)告,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-03-03
  • 聊聊Python中的pypy

    聊聊Python中的pypy

    這篇文章主要介紹了聊聊Python中的pypy,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • Pytest之測(cè)試命名規(guī)則的使用

    Pytest之測(cè)試命名規(guī)則的使用

    這篇文章主要介紹了Pytest之測(cè)試命名規(guī)則的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Python實(shí)現(xiàn)從網(wǎng)絡(luò)攝像頭拉流的方法分享

    Python實(shí)現(xiàn)從網(wǎng)絡(luò)攝像頭拉流的方法分享

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)從網(wǎng)絡(luò)攝像頭拉流的幾種方法,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解一下
    2023-01-01
  • Pytorch之tensorboard無(wú)法啟動(dòng)和顯示問(wèn)題及解決

    Pytorch之tensorboard無(wú)法啟動(dòng)和顯示問(wèn)題及解決

    這篇文章主要介紹了Pytorch之tensorboard無(wú)法啟動(dòng)和顯示問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Python找出列表中出現(xiàn)次數(shù)最多的元素三種方式

    Python找出列表中出現(xiàn)次數(shù)最多的元素三種方式

    本文通過(guò)三種方式給大家介紹Python找出列表中出現(xiàn)次數(shù)最多的元素,每種方式通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下
    2020-02-02
  • Python 解析pymysql模塊操作數(shù)據(jù)庫(kù)的方法

    Python 解析pymysql模塊操作數(shù)據(jù)庫(kù)的方法

    這篇文章主要介紹了Python 解析pymysql模塊操作數(shù)據(jù)庫(kù)的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Python統(tǒng)計(jì)某列不同值的個(gè)數(shù)的示例代碼

    Python統(tǒng)計(jì)某列不同值的個(gè)數(shù)的示例代碼

    在數(shù)據(jù)分析和數(shù)據(jù)處理中,統(tǒng)計(jì)數(shù)據(jù)往往集中在特定列中不同值的出現(xiàn)次數(shù),本文主要介紹了Python統(tǒng)計(jì)某列不同值的個(gè)數(shù)的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03

最新評(píng)論