В настоящее время я параметризирую все свои тестовые случаи, используя pytest_generate_tests
, и это работает хорошо.
То, что я хотел бы сделать сейчас, это переопределить это поведение для конкретного теста.Если я попытаюсь использовать декоратор pytest.mark.parametrize
в самом тесте, я получу ошибку ValueError: duplicate
, которая понятна, поскольку я сейчас пытаюсь параметризовать тест в двух местах.
Есть ли способ переопределить параметризацию "по умолчанию" для этого одного теста?
Я могу добиться этого, выполнив что-то подобное ниже, но это очень хакерский способ сделать это:
def pytest_generate_tests(metafunc):
fixture_modes = ['mode1', 'mode2']
if 'fixture' in metafunc.fixturenames:
fixture = metafunc.config.getoption('fixture')
if fixture:
fixture_modes = [fixture]
if metafunc.function.__name__ != 'func_to_skip':
metafunc.parametrize('fixture_mode', fixture_modes, indirect=True)
Есть ли лучший способ сделать это?