表示`before_scenario`钩子不记得初始化的变量值

问题描述 投票:0回答:1

我正在使用behave灯具在测试运行期间创建一个计数器。我在before_all钩子中初始化计数器,然后在每次运行场景时在before_scenario中增加它。

我认为before_all在整个测试期间运行一次,如果将一个变量添加到上下文中,它可以在以后使用。

这里我在context.i = 0初始化before_all,但是每次运行一个场景时before_scenariocontext.i的值再次设置为0。

environment.朋友

def before_all(context):
    context.i = 0

def before_scenario(context, scenario):
    context.i = context.i + 1

我希望每次运行都增加i。但它始终设置为1

python cucumber bdd python-behave
1个回答
0
投票

上下文用户变量,在before_scenario中定义,仅在方案lifycycle中可访问。当跑步者开始下一个场景时,在最后一个场景中定义的context.i不再存在,因此它使用在before_all钩子中定义的变量。我猜你不能改变在before_all钩子中定义的上下文用户变量。

© www.soinside.com 2019 - 2024. All rights reserved.