Как выбрать, какой прибор использовать в параметризованном тесте - PullRequest
0 голосов
/ 20 ноября 2018

В моем наборе тестов есть несколько фиксаторов, и я хотел бы передать эти фиксаторы в параметризованные тесты, см. Пример ниже:

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())

Однако в моей базе кода исправления имеют другие зависимости, которые я не хочу передавать в тест.

Я должен указатьиз того, что я действительно хочу, чтобы у двух были приборы, потому что они производят объекты, которые связаны, но имеют достаточно различий, чтобы их можно было проверить по-разному, и, тем не менее, у них есть общие черты, поэтому я хочу, чтобы они были в одних и тех же тестах в некоторых случаях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...