【发布时间】:2017-03-19 17:30:59
【问题描述】:
我对 Python 不太熟悉,但我已经使用 Python 行为设置了一个 BDD 框架,我现在想创建一个世界地图类来保存数据并且在所有场景中都可以检索。
例如,我将有一个世界级的我可以使用:
World w
w.key.add('key', api.response)
在一种情况下,在另一种情况下,我可以使用:
World w
key = w.key.get('key').
编辑:
或者,如果有一种使用上下文或类似行为的内置方式,其中属性在所有场景中都可以保存和检索,这将是很好的。
像生菜一样,你可以使用世界http://lettuce.it/tutorial/simple.html
我已经在不同场景之间尝试过,但似乎没有成功
class World(dict):
def __setitem__(self, key, item):
self.__dict__[key] = item
print(item)
def __getitem__(self, key):
return self.__dict__[key]
场景A中一步设置item:w.setitem('key', response)
在场景 B 的另一个步骤中获取项目:w.getitem('key',)
这向我显示了一个错误:
Traceback (most recent call last):
File "C:\Program Files (x86)\Python\lib\site-packages\behave\model.py", line 1456, in run
match.run(runner.context)
File "C:\Program Files (x86)\Python\lib\site-packages\behave\model.py", line 1903, in run
self.func(context, *args, **kwargs)
File "steps\get_account.py", line 14, in step_impl
print(w.__getitem__('appToken'))
File "C:Project\steps\world.py", line 8, in __getitem__
return self.__dict__[key]
KeyError: 'key'
世界似乎在运行的步骤之间不保存值。
编辑:
我不确定如何使用 environment.py,但可以看到它有一种在步骤之前运行代码的方式。如何允许调用 environment.py 中的肥皂客户端,然后将其传递给特定步骤?
编辑:
我已经在 environment.py 中提出了请求并对值进行了硬编码,如何将变量传递给 environment.py 并返回?
【问题讨论】:
标签: python bdd suds python-behave