robotframework中变量赋值的简化/实现
考虑以下robotframework代码示例:robotframework中变量赋值的简化/实现,robotframework,Robotframework,考虑以下robotframework代码示例: *** Variables *** ${VAR_1} any value ${VAR_2} another value *** Test Cases *** For Example only ${VAR_1}= Some Conversion ${VAR_1} ${VAR_2}= Some Conversion ${VAR_2} A User Keyword
*** Variables ***
${VAR_1} any value
${VAR_2} another value
*** Test Cases ***
For Example only
${VAR_1}= Some Conversion ${VAR_1}
${VAR_2}= Some Conversion ${VAR_2}
A User Keyword ${VAR_1} ${VAR_2}
Desired Notation
A User Keyword Some Conversion ${VAR_1} Some Conversion ${VAR_2}
*** Keywords ***
Some Conversion
[Arguments] ${value_to_convert}
${value_to_convert}= Catenate ${value_to_convert} Foobar
[Return] ${value_to_convert}
A User Keyword
[Arguments] ${arg1} ${arg2}
Log ${arg1}
Log ${arg2}
问题:是否有可能将工作测试用例简化为(非工作的)所需的符号,或者-我是否可以使用关键字的返回值作为参数传递,而不进行显式赋值
请澄清:
某些转换
将更加复杂,并且在
jrobotemote库
- 将助理移动到用户关键字
是不正确的
没有有用的解决方案,因为将有许多关键字
使用相同功能的参数数量不同
是的,这是可能的。您可以编写自己的关键字来调用作为参数传入的其他关键字 它看起来像这样:
*** Keywords ***
A User Keyword
[Arguments] ${keyword1} ${var1} ${keyword2} ${var2}
${var1}= Run keyword ${keyword1} ${var1}
${var2}= Run keyword ${keyword2} ${var2}
log ${var1}
log ${var2}
您将使用与示例中完全相同的关键字:
A User Keyword Some Conversion ${VAR_1} Some Conversion ${VAR_2}
是的,这是可能的。您可以编写自己的关键字来调用作为参数传入的其他关键字 它看起来像这样:
*** Keywords ***
A User Keyword
[Arguments] ${keyword1} ${var1} ${keyword2} ${var2}
${var1}= Run keyword ${keyword1} ${var1}
${var2}= Run keyword ${keyword2} ${var2}
log ${var1}
log ${var2}
您将使用与示例中完全相同的关键字:
A User Keyword Some Conversion ${VAR_1} Some Conversion ${VAR_2}
关键字的参数值赋值不能是其他关键字的返回值 正如@Bryan Oakly所强调的,可以通过巧妙地使用
运行关键字
来模拟外观,因为您强调了这将不起作用,因为赋值可能并不总是使用关键字,甚至使用具有相同参数数目的关键字
因此,最好的方法是您已经在做的事情,将值分配给变量,然后将变量分配给关键字参数。关键字的参数值分配不能是另一个关键字的返回值 正如@Bryan Oakly所强调的,可以通过巧妙地使用
运行关键字
来模拟外观,因为您强调了这将不起作用,因为赋值可能并不总是使用关键字,甚至使用具有相同参数数目的关键字
因此,最好的方法是您已经在做的事情,将值分配给变量,然后将变量分配给关键字参数。这是一个很难接受的决定。在我的情况下,你的答案是正确的(以我预期的方式不可能),但是@Bryan Oakly提供的解决方法可能会帮助更多的人遇到同样的问题。谢谢你的澄清。这是一个很难接受的决定。在我的情况下,你的答案是正确的(以我预期的方式不可能),但是@Bryan Oakly提供的解决方法可能会帮助更多的人遇到同样的问题。谢谢你的澄清。