无法从pytest.fixture获取数据,而是获取数据位置

时间:2019-01-15 10:51:14

标签: python pycharm integration-testing pytest

我正在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

它的作用是在pytest中使用cli参数

file2.py

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

当我在需要创建会话的模块上执行测试时,login_id给我的数据为

  

<函数login_id位于0x00000000092F79D8>

我无法获取此数据,如何获取cli参数中传递的值。

我正在使用pycharm,python3.5。

cli参数为--uid username

我没有使用login功能获得用户名,而是获得了数据位置。

感谢和问候

1 个答案:

答案 0 :(得分:0)

如果要在另一个灯具中使用一个灯具的值,只需将其作为参数传递:

@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