gpt4 book ai didi

python-behave - 如何在python-behave中将变量参数传递给context.execute_steps

转载 作者:行者123 更新时间:2023-12-03 21:26:02 30 4
gpt4 key购买 nike

我想在执行我的函数之前执行某个步骤。该步骤将变量作为参数。我无法在 context.execute_steps 中传递它。

eg.
call1 = "version"
call1_method = "get"

context.execute_steps('''When execute api{"method":call1_method, "call":call1}''')

但是这不起作用。我在参数解析中出错,因为变量不在引号中。我在行为文档中没有看到任何这样的例子。任何帮助将非常感激。

最佳答案

有很多事情可能会发生。我找到了 here如果您使用的是 python 3,则需要通过包含 u 使其成为 unicode前面''' .我也有点困惑,您必须包含何时,然后或作为执行步骤命令的一部分给出(不仅仅是步骤的名称),但您的示例似乎正在这样做。我对您传递变量的方式感到困惑,但可以告诉您如何使用 execute_steps 并在 Python 2 和 3 中使用行为 1.2.5。

@step('I set the Number to "{number:d}" exactly')
def step_impl(context, number):
context.number = 10
context.number = number

@step('I call another step')
def step_impl(context):
context.execute_steps(u'''when I set the Number to "5" exactly''')
print(context.number)
assert context.number == 10, 'This will fail'

然后调用:
Given I call another step
When some not mentioned step
Then some other not mentioned step

将在 I set the Number to "5" exactly 时执行作为时的一部分 I call another step .

对于您的确切示例,很难说,因为我不熟悉您尝试执行的另一步骤,但是如果您使用以下内容定义了上一步:
@step('execute api "{method}" "{version}"')
def step_impl(context, method, version):
# do stuff with passed in method and version variables

您应该能够在另一个步骤中像这样使用它。
@step('I call another step')
def step_impl(context):
context.execute_steps(u'''When execute api "get" "version1"''')

如果您的问题只是在步骤之间传递信息。您可以使用上下文在它们之间传递它。
@step('I do the first function')
def step_impl(context):
context.call1 = "version"
context.call1_method = "get"

@step('I call another step')
def step_impl(context):
print(%s and %s are available in this function % (context.call1, context.call1_method)

然后连续调用步骤
When I do the first function
And I call another step
...

关于python-behave - 如何在python-behave中将变量参数传递给context.execute_steps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46940856/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com