我正在使用 Python 的行为来进行测试。在步骤文件中,我想获取当前步骤名称,因为如果测试失败,我会截图并将文件重命名为步骤名称。
像这样的东西:
给定用户登录
当用户做某事
然后发生了一些事情
我希望我的步骤代码是这样的:
@given('user is logged in')
try:
# MY CODE HERE
except:
# GET THE STEP NAME HERE
任何人都知道如何做到这一点?
我正在使用 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)