如何使用Python获取当前行为步骤?
问题内容:
我正在使用行为与Python进行测试。在步骤文件中,我想获取当前步骤名称,因为如果测试失败,我将截屏并将文件重命名为步骤名称。
像这样:
给定 用户登录
时, 用户执行某项操作
则 发生某事
我希望我的步骤代码像这样:
@given('user is logged in')
try:
# MY CODE HERE
except:
# GET THE STEP NAME HERE
有人知道如何执行此操作吗?
问题答案:
我基本上已经完成了您想做的事情,通过after_step
在environment.py
文件中设置一个钩子,对失败的测试进行了截图。
def after_step(context, step):
if step.status == "failed":
take_the_shot(context.scenario.name + " " + step.name)
如果一个步骤可以出现在多个场景中,那么您很可能也想要场景名称。
如果上述方法对您不起作用,很遗憾,行为无法像在当前方案或当前功能中那样在当前步骤中设置step
字段。您可能有一个执行该分配的钩子,然后在步骤本身中,将步骤的名称称为。就像是:context``scenario``feature``before_step``context.step.name
def before_step(context, step):
context.step = step
并执行步骤:
def step_impl(context):
if some_condition:
take_the_shot(context.scenario.name + " " + context.step.name)