Python 定义夹具以及pytest_生成_测试
有没有一种方法可以定义一个Fixture函数以及pytest\u generate\u测试 当我用pytest_generate_测试实现fixture时,fixture没有被执行Python 定义夹具以及pytest_生成_测试,python,pytest,Python,Pytest,有没有一种方法可以定义一个Fixture函数以及pytest\u generate\u测试 当我用pytest_generate_测试实现fixture时,fixture没有被执行 import pytest import time @pytest.fixture def splunk_searchtime(): time.sleep(5) print("Wow okay") def pytest_generate_tests(metafunc): """
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\u generate\u测试时运行
我知道夹具可以直接参数化。但是我也希望pytest_生成_测试,因为有9-10个fixture是用它生成的。因此,直接使用@pytest.fixtureparams=[]参数化fixture似乎不是我的项目的选项 解决了这个问题
我只需要创建另一个固定装置
所以现在有两个固定装置
参数化测试用例
执行测试用例所需的设置
片段:
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