Я новичок в pytest, так что терпите меня.
Я пытаюсь использовать декораторы параметризации стека для проверки нескольких комбинаций перестановок, но вопрос в том, как я могу использовать значения из других декораторов параметризации в стеке.
я обнаружил следующее: но это не совсем то, что я ищу
сложенная параметризация
Использование фикстур в pytest.mark.parametrize \
вот чего я пытаюсь достичь:
@pytest.mark.parametrize("environment", ["main", "develop", "ci"])
@pytest.mark.parametrize("model", get_models())
@pytest.mark.parametrize("id", get_ids(environment, model)) #here i tried to use the returned values of environment and model from the above decorators
def test_ids(environment, model, id):
another_method(environment, model, id)
# some logic here
get_ids()
возвращает список идентификаторов на основе заданных environment
и model
.
это решение не работает, так как оно вызывает неразрешенную ошибку ссылки для environment
и model
Причина, по которой я хочу использовать декоратор параметризации, заключается в том, что мне нужно протестировать все перестановки _7 _, _ 8_ и ids
, но я хочу, чтобы pytest генерировал отдельный тест для каждой комбинации.
мое текущее решение:
@pytest.mark.parametrize("environment", ["main", "develop", "ci"])
@pytest.mark.parametrize("model", get_models())
def test_ids(environment, model):
ids = get_ids(environment, model)
for id in ids:
another_method(environment, model, id)
# some logic here
это решение работает, но каждый тест очень длинный, так как он перебирает длинный список идентификаторов, я предпочитаю запускать несколько небольших тестов, а не меньшее количество тестов, но очень долго.
это затрудняет понимание того, что происходит в тестах .
есть предложения?