中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python中pytest進階之xunit fixture的示例分析

發布時間:2021-08-12 14:15:15 來源:億速云 閱讀:154 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“python中pytest進階之xunit fixture的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“python中pytest進階之xunit fixture的示例分析”這篇文章吧。

前言

先附上官方文檔的一段說明

1.每個級別的setup/teardown都可以多次復用

2.如果相應的初始化函數執行失敗或者被跳過則不會執行teardown方法

3.在pytest4.2之前,xunit fixture 不遵循fixture的作用規則的,因此可以在一個session級別且參數auto=True的fixture前執行setup_method方法

但是到目前為止,所有的xunit fixture已經遵循了fixture執行的規則

function級別

實例

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

輸出結果

functionLevel.py 
--------------------
函數執行前所做的操作
--------------------
測試函數1
--------------------
函數執行后所做的操作
--------------------
--------------------
函數執行前所做的操作
--------------------
測試函數2
--------------------
函數執行后所做的操作
--------------------
[100%]
========================== 2 passed in 0.03 seconds ===========================

說明

通過輸出結果我們可以總結:setup_function會在每一個測試函數前執行初始化操作;teardown_function會在每一個測試函數執行后執行銷毀工作

method級別

實例

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

輸出結果

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

說明

通過輸出結果我們可以總結:setup_method會在每一個測試方法前執行初始化操作;teardown_method會在每一個測試方法執行后執行銷毀工作,且方法級別的fixture是作用在測試類中的方法上的

class級別

實例

 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'])

輸出結果

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

說明

通過輸出結果我們可以總結:setup_class會在測試類執行前執行一次初始化操作;teardown_class會在測試類執行后執行一次銷毀工作,且class級別的fixture需要使用@classmethod裝飾

module級別

實例

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'])

輸出結果

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 ===========================

說明

通過輸出結果我們可以總結:setup_module會在整個測試文件也就是模塊中的測試類或者測試函數,測試方法執行前執行一次初始化操作;teardown_module會在整個測試文件也就是模塊中的測試類或者測試函數,方法執行后執行一次銷毀工作

以上是“python中pytest進階之xunit fixture的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

玉门市| 错那县| 水城县| 叶城县| 泰顺县| 敦化市| 黄骅市| 城市| 三穗县| 夹江县| 漳州市| 林西县| 阳朔县| 宜良县| 且末县| 高阳县| 宜兴市| 泸溪县| 会泽县| 龙南县| 江北区| 宜春市| 喜德县| 云安县| 安乡县| 普宁市| 建阳市| 轮台县| 年辖:市辖区| 东乡县| 山西省| 长海县| 富平县| 邻水| 黄山市| 高台县| 莲花县| 独山县| 珲春市| 余庆县| 宜君县|