невозможно получить данные из pytest.fixture вместо получения местоположения данных - PullRequest
0 голосов
/ 15 января 2019

я тестирую в pytest. вот мой код

file1.py

def pytest_addoption(parser):
     parser.addoption('--uid')

@pytest.fixture
def login_id(request,pytestconfig):
    user_id = pytestconfig.getoption('--uid')

    return user_id

то, что он делает, это принимает аргумент cli в pytest

file2.py

@pytest.fixture 
def func(): 
      login(login_id)
      return session()

когда я выполняю тест на модуле, который требует создания сеанса, login_id выдает мне данные как

Я не могу получить эти данные, как получить значение, которое я передаю в аргументе cli.

я использую pycharm, python3.5.

параметр Cli как --uid username

я не получаю имя пользователя в login функции, а получаю местоположение данных.

спасибо и всего наилучшего

1 Ответ

0 голосов
/ 15 января 2019

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

@pytest.fixture
def login_id(request):
    ...
    return ...

@pytest.fixture 
def func(login_id): 
      login(login_id)
      return session()

Предложение в стороне: вам не нужен прибор pytestconfig, так как вы уже используете request. Вы можете получить конфигурацию через request.config в приборе login_id:

@pytest.fixture
def login_id(request):
    user_id = request.config.getoption('--uid')
    return user_id
...