python - 无法从 pytest.fixture 获取数据,而是获取数据位置
问题描述
我正在pytest中测试。这是我的代码
文件1.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 参数
文件2.py
@pytest.fixture
def func():
login(login_id)
return session()
当我在需要创建会话的模块上执行测试时 login_id 给我的数据为
<函数 login_id 在 0x00000000092F79D8>
我无法获取此数据,如何获取我在 cli 参数中传递的值。
我正在使用 pycharm,python3.5。
cli参数为--uid username
我没有在功能中获取用户名,login
而是获取数据的位置。
谢谢并恭祝安康
解决方案
如果您想在另一个夹具中使用夹具的值,只需将其作为参数传递:
@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
推荐阅读
- apache-spark - 带有 Pyspark 3.2、Hadoop 3.3.1 的 S3FS 连接器挂在 spark.read.load() 上
- angular - 无法绑定到“ngModel”,因为即使在 app.module.ts 中包含 FormsModule 后,它也不是“输入”的已知属性
- ios - 如何将图像更改为结构?SwiftUI
- vim - 有没有办法用键绑定关闭 Vim 内置终端?
- wordpress - 如何在 VScode 上本地预览 wordpress 网站?
- java - Spring Boot 无法从 redis 缓存序列化程序中读取数据。SerializationException:无法反序列化
- c# - DynamoDb SaveAsync 与运行时生成的对象
- python - Pandas 获取列中每个唯一值的行数
- python - 需要帮助将 Python 脚本转换为 PHP
- python - Numpy: How to get the sums of integer array slices based on indexes from another array in a vectorized manner?