我希望使用 fixture 作为 pytest.mark.parametrize
的参数或者具有相同结果的参数。
例如:
import pytest
import my_package
@pytest.fixture
def dir1_fixture():
return '/dir1'
@pytest.fixture
def dir2_fixture():
return '/dir2'
@pytest.parametrize('dirname, expected', [(dir1_fixture, 'expected1'), (dir2_fixture, 'expected2')])
def test_directory_command(dirname, expected):
result = my_package.directory_command(dirname)
assert result == expected
Fixture 参数的问题在于,每次使用 fixture 的每个参数时,都会运行它,但我不希望出现这种情况。我希望能够选择哪些夹具将得到使用取决于测试。