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

时间:2016-02-15 15:30:05

标签: python pytest

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

由于

1 个答案:

答案 0 :(得分:13)

使用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_name foo ,因为此测试的此装置以参数化运行。第二次测试获得 bar 值。由于断言检查 baz ,每个测试都会失败。