我正在尝试在我的一个 pytest 脚本上使用下面的装置。
如果我添加
back_up_account
作为参数,它可以正常工作并返回字典:
def tests_123(self, default_user):
self.startup(default_user(back_up_account="test_account123"))
但是如果我不添加
back_up_account
作为参数,它就不起作用并返回“函数”对象。
def tests_123(self, default_user):
self.startup(default_user)
有人知道为什么吗?
@pytest.fixture(scope='function')
def default_user(self) -> Dict:
user = None
def return_account(back_up_account: str = None):
try:
#self.user_util.get_account() returns a Dictionary
user = self.user_util.get_account()
except Exception:
return back_up_account
return user
yield return_account
看起来你的装置default_user正在产生一个函数,而不是一个字典。您应该尝试在测试中调用 default_user 来获取字典。
我认为这应该有效:
def tests_123(self, default_user):
user_account = default_user()
self.startup(user_account)