尝试使用pytest的功能将params = []传递给fixture的装饰器,期望为每个传递的值单独调用它。作为一个参数,我想传递另一个灯具(只是一个演示代码):
import pytest
@pytest.fixture
def rates():
return (1.12, 1.15, 1.37)
@pytest.fixture
def expires():
return (102, 105, 107)
@pytest.fixture(params=[rates, expires])
def data(request):
return request.param
def test_vol(data):
assert len(data) == 3
这只是抱怨:
TypeError: object of type 'function' has no len()
有办法吗?
答案 0 :(得分:0)
我刚发现的一种可能的解决方案:
@pytest.fixture(params=[rates, expires])
def data(request):
return request.getfuncargvalue(request.param.__name__)
虽然不是很简单......