pytest.mark.parametrize do/mean 中的 indirect = True/False 是什么意思?

What does indirect = True/False in pytest.mark.parametrize do/mean?

我只是想了解它是什么意思,或者如果我在 pytest.mark.parametrize 中将间接参数设置为 True 或 False 会发生什么?

谢谢

使用 indirect=True 你可以参数化你的灯具,False - 默认值。示例:

import pytest

@pytest.fixture
def fixture_name(request):
    return request.param

@pytest.mark.parametrize('fixture_name', ['foo', 'bar'], indirect=True)
def test_indirect(fixture_name):
    assert fixture_name == 'baz'

所以这个例子生成了两个测试。第一个来自 fixture_namefoo,因为此测试的这个夹具使用参数化运行。第二个测试得到 bar 值。并且每个测试都会失败,因为断言检查 baz.