Robotframework 什么时候应该在Robot测试框架中为变量使用quote

Robotframework 什么时候应该在Robot测试框架中为变量使用quote,robotframework,Robotframework,我使用robot编写测试用例已经有一段时间了,但我仍然无法在脑海中理解这一点,就像一条规则告诉我何时需要引用一样? 例如,有一个变量: ${variable} $variable ${variable.att} '${variable}' "${variable}" None '${None}' 在关键字中和不在关键字中时,它们是什么 看起来${1}是数字,1是字符串,但在FOR循环中,有: :对于12中的${variable},这里的1现在似乎是数字了?引号 粗略地说,只要变量被视为pyth

我使用robot编写测试用例已经有一段时间了,但我仍然无法在脑海中理解这一点,就像一条规则告诉我何时需要引用一样? 例如,有一个变量:

${variable}
$variable
${variable.att}
'${variable}'
"${variable}"
None
'${None}'
关键字中和不在
关键字中时,它们是什么

看起来
${1}
是数字,
1
是字符串,但在
FOR
循环中,有:

:对于12
中的${variable},这里的
1
现在似乎是数字了?

引号 粗略地说,只要变量被视为python表达式或语句,就需要添加引号

当您使用
Evaluate
时,您正在向它传递要执行的python代码。Python要求字符串用引号表示。因此,如果有一个变量
${variable}
包含五个字符
hello
,要将其与
Evaluate
一起使用,必须使用引号

例如,给定以下robot语句:

${result}=  Evaluate  '${variable}' + " world"
这将导致评估以下python代码:

'hello' + " world"
如果没有引号,它将是
hello+“world”
,在这种情况下,python认为
hello
表示一个变量

大括号中的数字(例如:${1}) 至于大括号内的数字,这只是将字符串转换为实际数字的一点额外语法。这在调用需要实际数字而不是包含数字的字符串的关键字时非常有用

用户指南中描述了大括号中数字的行为: 瞿

${NONE}
${NONE}用于调用关键字(通常基于python),需要传入python值
NONE
,或者将关键字的结果与python值
NONE
进行比较。您永远不会在这个变量周围加引号。robot将不带引号或大括号的字符串
None
视为文本字符串
None

非常感谢,但是
${None}
'${None}'
None
呢?