我正在使用Python&表现BDD以实现自动化。
据我所知,后台在每个场景之前运行,但我需要在仅使用$classNames[($key%count($classNames))]
标记的场景之前运行后台。我怎样才能做到这一点?
我试图获取当前的方案标记和@need_background
。但据我所知,表现没有跳过后台步骤的方法。
答案 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
我认为它可能符合您的要求