6

在 Robot Framework 用户指南中有一个部分描述了如何传递变量文件以及一些可能的变量(如果需要)。
例子:
pybot --variablefile taking_arguments.py:arg1:arg2

我的问题是我可以在之后的 take_arguments.py 文件中使用这些可能的变量 arg1 和 arg2 吗?如果可以的话,我该怎么做?

现在我有这个:

pybot --variablefile taking_arguments.py:arg1:arg2

take_arguments.py 内容:

IP_PREFIX = arg1

但这导致

NameError: name 'arg1' is not defined

4

2 回答 2

6

使用语法在参数文件中使用变量的唯一方法--variablefile filename.py:arg1:arg2是让变量文件实现函数get_variables。此函数将传递您在命令行中指定的参数,并且必须返回变量名称和值的字典。

例如,考虑以下名为“variables.py”的变量文件:

def get_variables(arg1, arg2):
    variables = {"argument 1": arg1,
                 "argument 2": arg2,
                }
    return variables

该文件创建了两个机器人变量,名为${argument 1}${argument 2}。这些变量的值将是传入的参数的值。您可以像这样使用这个变量文件:

pybot --variablefile variables.py:one:two ...

在这种情况下,字符串“one”和“two”将get_variables作为两个参数传递给。然后这些将与这两个变量相关联,导致${argument 1}被设置为one${argument 2}被设置为two

于 2013-05-15T16:56:51.370 回答
2

我没有尝试将初始值传递给变量文件中的变量......所以我不确定这是否可能......

我可以提供一个替代...

您可以在 pybot 命令中手动定义一些变量及其值...

pybot -variablefile taking_arguments.py -v IP_PREFIX:arg1 -v Varibale:Value 

如果我没记错的话,这些手动启动的变量比变量文件中的优先级更高。因此,即使它们是在变量文件中启动的,使用 -v 选项传递的值也会在测试用例中使用。

希望这可以帮到你!

于 2013-05-15T11:18:37.140 回答