最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python pytest進(jìn)階之xunit fixture詳解

 更新時(shí)間:2019年06月27日 11:20:47   作者:linux超  
這篇文章主要介紹了python pytest進(jìn)階之xunit fixture詳解,了解unittest的同學(xué)應(yīng)該知道我們?cè)诔跏蓟h(huán)境和銷(xiāo)毀工作時(shí),unittest使用的是setUp,tearDown方法,那么在pytest框架中同樣存在類(lèi)似的方法,今天我們就來(lái)具體說(shuō)明,需要的朋友可以參考下

前言

今天我們?cè)僬f(shuō)一下pytest框架和unittest框架相同的fixture的使用, 了解unittest的同學(xué)應(yīng)該知道我們?cè)诔跏蓟h(huán)境和銷(xiāo)毀工作時(shí),unittest使用的是setUp,tearDown方法,那么在pytest框架中同樣存在類(lèi)似的方法,今天我們就來(lái)具體說(shuō)明。

先附上官方文檔的一段說(shuō)明

1.每個(gè)級(jí)別的setup/teardown都可以多次復(fù)用

2.如果相應(yīng)的初始化函數(shù)執(zhí)行失敗或者被跳過(guò)則不會(huì)執(zhí)行teardown方法

3.在pytest4.2之前,xunit fixture 不遵循fixture的作用規(guī)則的,因此可以在一個(gè)session級(jí)別且參數(shù)auto=True的fixture前執(zhí)行setup_method方法

但是到目前為止,所有的xunit fixture已經(jīng)遵循了fixture執(zhí)行的規(guī)則

function級(jí)別

實(shí)例

 def setup_function(function):
 print('\n--------------------')
 print('函數(shù)執(zhí)行前所做的操作')
print('\n--------------------')
 def teardown_function(function):
print('\n--------------------')
 print('函數(shù)執(zhí)行后所做的操作')
print('\n--------------------')
def test_function_1():
print('\n測(cè)試函數(shù)1')
def test_function_2():
 print('\n測(cè)試函數(shù)2')
if __name__ == '__main__':
import pytest
pytest.main(['-sq', 'functionLevel.py'])

輸出結(jié)果

functionLevel.py 
--------------------
函數(shù)執(zhí)行前所做的操作
--------------------
測(cè)試函數(shù)1
--------------------
函數(shù)執(zhí)行后所做的操作
--------------------
--------------------
函數(shù)執(zhí)行前所做的操作
--------------------
測(cè)試函數(shù)2
--------------------
函數(shù)執(zhí)行后所做的操作
--------------------
[100%]
========================== 2 passed in 0.03 seconds ===========================

說(shuō)明

通過(guò)輸出結(jié)果我們可以總結(jié):setup_function會(huì)在每一個(gè)測(cè)試函數(shù)前執(zhí)行初始化操作;teardown_function會(huì)在每一個(gè)測(cè)試函數(shù)執(zhí)行后執(zhí)行銷(xiāo)毀工作

method級(jí)別

實(shí)例

 class TestMethod(object):
 def setup_method(self, method):
 print('\n--------------------')
 print('方法執(zhí)行前所做的操作')
 print('\n--------------------')
 def teardown_method(self, method):
 print('\n--------------------')
print('方法執(zhí)行后所做的操作')
print('\n--------------------')
def test_method_1(self):
print('\n測(cè)試方法1')
def test_method_2(self):
print('\n測(cè)試方法2')
if __name__ == '__main__':
import pytest
pytest.main(['-sq', 'methodLevel.py'])

輸出結(jié)果

methodLevel.py 
--------------------
方法執(zhí)行前所做的操作
--------------------
測(cè)試方法1
--------------------
方法執(zhí)行后所做的操作
--------------------
--------------------
方法執(zhí)行前所做的操作
--------------------
測(cè)試方法2
--------------------
方法執(zhí)行后所做的操作
--------------------
[100%]
========================== 2 passed in 0.03 seconds ===========================

說(shuō)明

通過(guò)輸出結(jié)果我們可以總結(jié):setup_method會(huì)在每一個(gè)測(cè)試方法前執(zhí)行初始化操作;teardown_method會(huì)在每一個(gè)測(cè)試方法執(zhí)行后執(zhí)行銷(xiāo)毀工作,且方法級(jí)別的fixture是作用在測(cè)試類(lèi)中的方法上的

class級(jí)別

實(shí)例

 class TestClass(object): 
 @classmethod
 def setup_class(cls):
 print('\nsetup_class() for {}'.format(cls.__name__)) 
 @classmethod
def teardown_class(cls):
 print('\nteardown_class() for {}'.format(cls.__name__))
def test_1(self):
 print('self.test_1()')
def test_2(self):
print('self.test_2()')
if __name__ == '__main__':
import pytest
 pytest.main(['-sq', 'classLevel.py'])

輸出結(jié)果

classLevel.py 
setup_class() for TestClass
.self.test_1()
.self.test_2()
teardown_class() for TestClass
[100%]
========================== 2 passed in 0.06 seconds ===========================

說(shuō)明

通過(guò)輸出結(jié)果我們可以總結(jié):setup_class會(huì)在測(cè)試類(lèi)執(zhí)行前執(zhí)行一次初始化操作;teardown_class會(huì)在測(cè)試類(lèi)執(zhí)行后執(zhí)行一次銷(xiāo)毀工作,且class級(jí)別的fixture需要使用@classmethod裝飾

module級(jí)別

實(shí)例

def setup_module(module):
 print('\nsetup_module() for {}'.format(module.__name__))
def teardown_module(module):
 print('\nteardown_module() for {}'.format(module.__name__))
def test_1():
 print('test_1()') 
def test_2():
print('test_2()')
class TestClass(object):
def test_3(self):
print('self.test_3()')
def test_4(self):
print('self.test_4()')
if __name__ == '__main__':
 import pytest
pytest.main(['-sq', 'moduleLevel.py'])

輸出結(jié)果

moduleLevel.py 
setup_module() for moduleLevel
.test_1()
.test_2()
.self.test_3()
.self.test_4()
teardown_module() for moduleLevel
[100%]
========================== 4 passed in 0.04 seconds ===========================

說(shuō)明

通過(guò)輸出結(jié)果我們可以總結(jié):setup_module會(huì)在整個(gè)測(cè)試文件也就是模塊中的測(cè)試類(lèi)或者測(cè)試函數(shù),測(cè)試方法執(zhí)行前執(zhí)行一次初始化操作;teardown_module會(huì)在整個(gè)測(cè)試文件也就是模塊中的測(cè)試類(lèi)或者測(cè)試函數(shù),方法執(zhí)行后執(zhí)行一次銷(xiāo)毀工作

以上就是xunit fixture的4個(gè)級(jí)別,實(shí)際工作中該如何使用還需多練習(xí),深入理解才能得心應(yīng)手!

附上官方文檔做參考雖是英文但是很詳細(xì)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python實(shí)現(xiàn)對(duì)比不同字體中的同一字符的顯示效果

    Python實(shí)現(xiàn)對(duì)比不同字體中的同一字符的顯示效果

    這篇文章主要介紹了Python實(shí)現(xiàn)對(duì)比不同字體中的同一字符的顯示效果,也就是對(duì)比不同字體中某個(gè)字的顯示效果,這在做設(shè)計(jì)時(shí)非常有用,需要的朋友可以參考下
    2015-04-04
  • Python創(chuàng)建一個(gè)元素都為0的列表實(shí)例

    Python創(chuàng)建一個(gè)元素都為0的列表實(shí)例

    今天小編就為大家分享一篇Python創(chuàng)建一個(gè)元素都為0的列表實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • cv2.getStructuringElement()函數(shù)及開(kāi)、閉、腐蝕、膨脹原理講解

    cv2.getStructuringElement()函數(shù)及開(kāi)、閉、腐蝕、膨脹原理講解

    getStructuringElement()函數(shù)可用于構(gòu)造一個(gè)特定大小和形狀的結(jié)構(gòu)元素,用于圖像形態(tài)學(xué)處理,這篇文章主要介紹了cv2.getStructuringElement()函數(shù)及開(kāi)、閉、腐蝕、膨脹原理講解的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • YOLOv5車(chē)牌識(shí)別實(shí)戰(zhàn)教程(三)模型訓(xùn)練與評(píng)估

    YOLOv5車(chē)牌識(shí)別實(shí)戰(zhàn)教程(三)模型訓(xùn)練與評(píng)估

    這篇文章主要介紹了YOLOv5車(chē)牌識(shí)別實(shí)戰(zhàn)教程(三)模型訓(xùn)練與評(píng)估,在這個(gè)教程中,我們將一步步教你如何使用YOLOv5進(jìn)行車(chē)牌識(shí)別,幫助你快速掌握YOLOv5車(chē)牌識(shí)別技能,需要的朋友可以參考下
    2023-04-04
  • Python對(duì)CSV、Excel、txt、dat文件的處理

    Python對(duì)CSV、Excel、txt、dat文件的處理

    本文介紹的是Python對(duì)CSV、Excel、txt、dat文件的處理,具有一定的參考價(jià)值,需要的朋友跟隨小編一起來(lái)看下
    2018-09-09
  • Python中self關(guān)鍵字的用法解析

    Python中self關(guān)鍵字的用法解析

    在Python中,self是一個(gè)經(jīng)常出現(xiàn)的關(guān)鍵字,特別是在類(lèi)定義中的方法,這篇文章主要和大家self的作用和用法,希望可以幫助大家更好地理解為什么需要它以及如何正確使用它
    2023-11-11
  • Python關(guān)于拓?fù)渑判蛑R(shí)點(diǎn)講解

    Python關(guān)于拓?fù)渑判蛑R(shí)點(diǎn)講解

    在本篇文章里小編給大家分享了一篇關(guān)于Python關(guān)于拓?fù)渑判蛑R(shí)點(diǎn)講解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-01-01
  • Python進(jìn)階之使用selenium爬取淘寶商品信息功能示例

    Python進(jìn)階之使用selenium爬取淘寶商品信息功能示例

    這篇文章主要介紹了Python進(jìn)階之使用selenium爬取淘寶商品信息功能,結(jié)合實(shí)例形式詳細(xì)分析了Python使用selenium與requests模塊爬取淘寶商品信息的相關(guān)操作技巧,需要的朋友可以參考下
    2019-09-09
  • python中序列的逆序方式

    python中序列的逆序方式

    這篇文章主要介紹了python中序列的逆序方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 在Python中將元組轉(zhuǎn)換為列表的方法詳解

    在Python中將元組轉(zhuǎn)換為列表的方法詳解

    這兩種Python 數(shù)據(jù)類(lèi)型看起來(lái)很相似,但在上下文中卻有不同的用法,元組和列表之間的主要區(qū)別在于它們的可變性,僅當(dāng)您需要修改元素時(shí)才會(huì)將元組轉(zhuǎn)換為列表,本文現(xiàn)在我們將深入研究將元組轉(zhuǎn)換為列表的不同方法,需要的朋友可以參考下
    2023-09-09

最新評(píng)論

沂水县| 福鼎市| 建德市| 乐昌市| 怀远县| 鄂托克前旗| 沐川县| 广水市| 克拉玛依市| 宽甸| 慈利县| 专栏| 依兰县| 任丘市| 延安市| 静海县| 延寿县| 信丰县| 宁津县| 海丰县| 禄劝| 田林县| 尼玛县| 绥德县| 衡东县| 广宁县| 汕尾市| 钦州市| 桂平市| 望城县| 穆棱市| 九江县| 垣曲县| 青龙| 阿坝县| 凤凰县| 赣榆县| 界首市| 贺兰县| 武穴市| 涿鹿县|