我遇到了一个问题,我不知道如何解决。
我在conftest.py 文件中有以下固定装置:
@pytest.fixture
def input_payload_1() -> pydantic.BaseModel:
pass
@pytest.fixture
def input_payload_2() -> pydantic.BaseModel:
pass
我想用这些装置对我的单元测试进行参数化,以便对两者进行测试。比如:
@pytest.mark.parametrize(
"input_payload, expected_output",
[
("input_payload_1", {"value"}),
("input_payload_2", {"value2"}),
],
)
def test_something(input_payload, expected_output):
result = tested_functionality(input_payload)
assert result == expected_output
但我在这里很挣扎,因为我无法对此进行参数化。我已经成功地通过使用间接属性使其仅适用于一个固定装置,但不能用于更多固定装置。在这种情况下,我将如何参数化 2 个以上的固定装置?
request
夹具:
# conftest.py
@pytest.fixture
def input_payload_1():
return "value1"
@pytest.fixture
def input_payload_2():
return "value2"
# test_example.py
def functionality(value):
return {value}
@pytest.mark.parametrize(
"input_payload, expected_output",
[
("input_payload_1", {"value1"}),
("input_payload_2", {"value2"}),
],
)
def test_something(input_payload, expected_output, request):
result = functionality(request.getfixturevalue(input_payload))
assert result == expected_output