У меня есть прибор, который создает список предметов во время тестов. Я хочу иметь другой прибор, который параметризован значениями, сгенерированными первым.
Пример кода
import random
import pytest
@pytest.fixture
def values():
return [random.randint(0, 100) for _ in range(10)]
@pytest.fixture
def value(request):
return request.param
@pytest.mark.parametrize("value", params=values):
def test_function(value):
assert value > 0
Проблема с приведенным выше кодом заключается в том, что values
является функцией, а не списком. Я довольно много копал, но не нашел способа распаковать прибор, чтобы параметризовать его другим.
Мне известно, что я могу передать приспособление values
и итерировать его в тестах, но это не очень хорошее решение, так как я хочу увидеть, какие значения приводят к сбою теста.
Я также открыт для альтернативных решений, например, если возможно запустить подтесты из запущенного теста.