如何跳过Behave BDD背景中的步骤?

时间:2017-01-13 15:03:45

标签: python bdd python-behave

我正在使用Python&表现BDD以实现自动化。

据我所知,后台在每个场景之前运行,但我需要在仅使用$classNames[($key%count($classNames))] 标记的场景之前运行后台。我怎样才能做到这一点?

我试图获取当前的方案标记和@need_background。但据我所知,表现没有跳过后台步骤的方法。

1 个答案:

答案 0 :(得分:2)

由于场景不共享相同的背景,为什么不将特殊的一个移动到其他功能文件或只是不使用背景。

但如果您仍想使用背景部分,我建议:

首先,在您的environment.py

中添加一个钩子
$e->getFile()

然后将所有步骤合并为背景

def before_scenario(context, scenario):
if 'need_background ' in scenario.tags:
    context.if_background = True
else:
    context.if_background = False    

现在,如果您的要素文件是:

@given('all background steps are done')
def step_impl(context):
if context.if_background:
    context.context.execute_steps('''
        steps in background
    ''')
else:
    pass

我认为它可能符合您的要求