pytest框架之fixture前置和後置

2022-03-29 05:01:11 字數 2324 閱讀 4014

fixture函式根據關鍵字yield作為前置和後置的分割線,並且yield也可以接收返回值,作用相當於return

import

pytest

@pytest.fixture()

definit_demo():

print("

這是測試用例的前置")

a = 1

yield a #

分割線(yield + 返回值)

print("

這是測試用例的後置

")

將fixtures的函式名稱作為測試用例的入參

如果fixture有返回值,那麼測試用例中的fixture函式名稱就接收返回值,並且可以將fixture函式名稱作為返回值使用

def

test_add_01(init_demo):

b = init_demo + 2

assert 3 == b

執行結果:

在測試用例/測試類前面加上@pytest.mark.usefixtures('fixture函式名稱')

ps:定義conftest.py檔案,在此檔案中可以定義多個fixture,pytest會自動搜尋此檔案

import

pytest

@pytest.mark.usefixtures(

'init_demo')

deftest_add_02():

b = 1 + 2

assert 3 == b

執行結果:

conftest**如下:

import

pytest

@pytest.fixture(autouse=ture)

definit_demo():

print("

這是測試用例的前置")

yield

print("

這是測試用例的後置

")

測試**如下:

import

pytest

deftest_add_02():

b = 1 + 2

assert 3 == b

執行結果:

conftest.py**如下:

import

pytest

@pytest.fixture(scope='

session')

definit_session():

print("

這是測試會話的前置")

yield

print("

這是測試會話的後置")

@pytest.fixture(scope='

module')

definit_module(init_session):

print("

這是測試模組的前置")

yield

print("

這是測試模組的後置")

@pytest.fixture(scope='

class')

definit_class(init_module):

print("

這是測試類的前置")

yield

print("

這是測試類的後置")

@pytest.fixture

#相當於@pytest.fixture(scope='function')

definit_function(init_class):

print("

這是測試用例的前置")

yield

print("

這是測試用例的後置

")

測試**如下:

import

pytest

@pytest.mark.usefixtures(

'init_function')

deftest_demo():

print('

測試用例')

assert 3 == 3

執行結果:

pytest測試框架1 強大的Fixture功能

1.fixture是 幹什麼用的?fixture是在測試函式執行前後,由pytest執行的外殼函式 可以定製,滿足多變的測試需求 包括定義傳入測試中的資料集,配置測試前系統的初始狀態,為批量測試提供資料來源等等.fixture是pytest用於將測試前後進行預備,清理工作的 分離出核心測試邏輯的一種...

pytest文件66 工廠化的 fixtures

在乙個測試用例中需要多次呼叫同乙個fixture的時候,工廠化的 fixture 的模式對於乙個 fixture 在單一的測試中需要被多次呼叫非常有用。之前寫fixture是直接return乙個資料,在測試用例中可以直接使用,現在我們需要返回乙個生成資料的函式,這樣就能在用例中多次呼叫了。facto...

pytest框架之pytest html報告生成

pytest html屬於pytest的乙個外掛程式,使用它需要先安裝 pip install pytest htmlpytest可以生成多種樣式的結果 生成junitxml格式的測試報告,命令 junitxml path 生成resultlog格式的測試報告,命令 resultlog report...