是否可以与pytest_generate_tests一起定义Fixture函数?
当我使用pytest_generate_tests实现Fixture时,没有执行Fixture。
import pytest
import time
@pytest.fixture
def splunk_searchtime():
time.sleep(5)
print("Wow okay")
def pytest_generate_tests(metafunc):
"""
Parse the fixture dynamically.
"""
for fixture in metafunc.fixturenames:
if fixture.startswith("splunk_searchtime"):
metafunc.parametrize(fixture, [1,2,3])
def test_one(splunk_searchtime):
pass
def test_two(splunk_searchtime):
pass
它仅在我评论pytest_generate_tests时运行。
我知道可以直接对灯具进行参数化。但是我也想要pytest_generate_tests,因为它正在生成9-10个夹具。因此,直接使用@pytest.fixture(params=[])
参数化夹具似乎不是我的项目的选择。
答案 0 :(得分:1)
解决了这个问题。
我只需要创建另一个装置。
因此,现在有2个灯具。
摘要:
import pytest
import time
@pytest.fixture
def splunk_searchtime(param_fixture):
time.sleep(param_fixture)
print("Wow okay")
def pytest_generate_tests(metafunc):
global splunk_searchtime
"""
Parse the fixture dynamically.
"""
# global splunk_searchtime
for fixture in metafunc.fixturenames:
if fixture.startswith("param_fixture"):
metafunc.parametrize("param_fixture", [1,2,3, 4])
def test_one(splunk_searchtime):
pass
def test_two(splunk_searchtime):
pass