我想使用灵活的固定装置进行数据调用,可以在整个测试套件中重复使用。为此,我希望理想地传递的不仅仅是参数。然而,下面的代码片段通常仅适用于一个参数:
@pytest.fixture
def getData(request):
"""Variable data query"""
data_detail = request.param
Run Code Online (Sandbox Code Playgroud)
在pytest 文档中,没有任何暗示可以使用多个参数,例如:
@pytest.fixture
def getData(request):
"""Variable data query"""
data_detail = request.param[0]
time_detail = request.param[1]
Run Code Online (Sandbox Code Playgroud)
有谁知道如何构建一个可以传递多个参数/参数的 pytest 固定装置?
MrB*_*men 10
您可以使用元组或字典作为固定装置参数:
@pytest.fixture
def tuple_params(request):
yield sum(request.param)
@pytest.mark.parametrize("tuple_params", [(1, 2, 3)], indirect=True)
def test_tuple_params(tuple_params):
print(tuple_params) # 6
@pytest.fixture
def dict_params(request):
yield f"{request.param['a']}_{request.param['b']}"
@pytest.mark.parametrize("dict_params", [{"a": "foo", "b": "bar"}],
indirect=True)
def test_dict_params(dict_params):
print(dict_params) # foo_bar
Run Code Online (Sandbox Code Playgroud)
一般来说,参数可以是任何对象,因此您始终可以将夹具参数放在合适的对象中。
使用元组或列表参数,您还可以访问每个索引的值,如示例中所示。
| 归档时间: |
|
| 查看次数: |
8085 次 |
| 最近记录: |