转义特殊字符

由于空格被用来分隔选项, 所以想在选项值中使用空格就会产生问题. 有的选项, 例如 —name, 会自动将下划线转换为空格, 但在其他选项中, 空格则必须要被转义. 除此之外还有很多特殊字符也无法简单的在命令行中使用.

使用反斜杠或者引号来转义这些复杂的字符并不总是有效的, 所以Robot Framework有自己的通用转义机制. 另外一种方法则是使用 参数文件, 将所有选项以纯文本的格式写入其中. 这两种方法在测试执行, 测试结果处理, 以及使用其他第三方支持工具时, 都有相同或相似的功能.

Robot Framework的命令行转义机制中, 特殊字符可以自由地选用替代字符来转义. 使用命令行选项 —escape (-E), 该选项的参数格式是 what:with, 其中 what 是待转义字符的名称, with 是要替代它的普通字符. 可用这种方法转义的字符如下表所列:

Available escapes
CharacterName to useCharacterName to use
&amp(paren1
apos)paren2
@at%percent
\bslash|pipe
:colon?quest
,commaquot
{curly1;semic
}curly2/slash
$dollarspace
!exclam[square1
>gt]square2
#hash*star
<lt

看看下面的例子会更容易理解. 第一个例子中, 选项metadata X 最终的值是 Value with spaces, 而第二个例子中, 变量 ${VAR} 被赋值为 "Hello, world!":

  1. --escape space:_ --metadata X:Value_with_spaces
  2. -E space:SP -E quot:QU -E comma:CO -E exclam:EX -v VAR:QUHelloCOSPworldEXQU

注意所有的命令行参数, 包括测试数据的路径, 都会被转义. 所以, 必须小心地选择转义字符的顺序.