fixture函式根據關鍵字yield作為前置和後置的分割線,並且yield也可以接收返回值,作用相當於return
import將fixtures的函式名稱作為測試用例的入參pytest
@pytest.fixture()
definit_demo():
print("
這是測試用例的前置")
a = 1
yield a #
分割線(yield + 返回值)
print("
這是測試用例的後置
")
如果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...