В моем наборе тестов есть несколько фиксаторов, и я хотел бы передать эти фиксаторы в параметризованные тесты, см. Пример ниже:
import pytest
@pytest.fixture(params=[
[1,2,3],[1],[]
]
def fixture1(request):
return list(request.param)
@pytest.fixture(params=[
{'a':1,'b':2,'c':3},{'a':1},{}
]
@pytest.fixture
def fixture2(request):
return dict(request.param)
@pytest.mark.parametrize(['structure'],[(fixture1,fixture2)])
def test_structure_has_length(structure):
assert len(structure)
Это в основном то, что я хочу сделать, но это приводит кTypeError
потому что переменная structure
является в действительности функцией.В приведенном выше примере я мог бы просто изменить строку подтверждения на:
assert len(structure())
Однако в моей базе кода исправления имеют другие зависимости, которые я не хочу передавать в тест.
Я должен указатьиз того, что я действительно хочу, чтобы у двух были приборы, потому что они производят объекты, которые связаны, но имеют достаточно различий, чтобы их можно было проверить по-разному, и, тем не менее, у них есть общие черты, поэтому я хочу, чтобы они были в одних и тех же тестах в некоторых случаях.