![](/img/trans.png)
[英]Is there a way to access the name of the YAML variable file passed as an argument to robot framework?
[英]How to use extra arguments passed with Variable file - Robot framework
在Robot Framework用户指南中,有一节描述了如何传递变量文件以及一些可能的变量(如果需要)。
例:
pybot --variablefile taking_arguments.py:arg1:arg2
我的问题是我之后可以在taking_arguments.py文件中使用这些可能的变量arg1和arg2,如果可以,那么如何?
现在我有这个:
pybot --variablefile taking_arguments.py:arg1:arg2
taking_arguments.py内容:
IP_PREFIX = arg1
但结果是
NameError: name 'arg1' is not defined
使用--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
。
我没有尝试将初始值传递给变量文件中的变量......所以我不确定这是否可能......
我可以提供另一种选择......
您可以在pybot命令中手动定义一些变量及其值...
pybot -variablefile taking_arguments.py -v IP_PREFIX:arg1 -v Varibale:Value
如果我没有弄错,这些手动启动的变量比变量文件中的变量具有更高的优先级。 因此,即使它们是在变量文件中启动的,使用-v选项传递的值也将在测试用例中使用。
希望这可以帮到你!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.