参数文件

参数文件就是把所有或部分命令行选项和参数放在一个外部文件中, 这样可以避免命令行中的字符问题. 如果用到选项或参数很多, 使用参数文件也可以避免命令行变得太长.

参数文件通过选项 —argumentfile (-A) 指定, 同时仍然可以使用其它的命令行选项.

参数文件的语法

参数文件可以同时包含命令行选项和待测试数据的路径, 一条选项或者一个数据源占一行. 短选项和长选项都可以, 不过推荐使用更容易看懂的长选项. 参数文件中可以无需转义使用任意字符, 但每行开头和结尾的空格会被忽略. 此外, 空行和以井号(#)开始的行也会被忽略:

  1. --doc This is an example (where "special characters" are ok!)
  2. --metadata X:Value with spaces
  3. --variable VAR:Hello, world!
  4. # This is a comment
  5. path/to/my/tests

上例中, 选项名称和值之间使用单个空格隔开. 在 Robot Framework 2.7.6 或更高版本中, 还可以使用等号(=)或者任意的空格来隔开. 例如, 下面3行的作用是等价的:

  1. --name An Example
  2. --name=An Example
  3. --name An Example

如果参数文件包含了non-ASCII字符, 则文件必须以UTF-8编码保存.

使用参数文件

参数文件既可以单独使用(其中包含所有用到的选项和测试数据路径), 也可以和其它选项和路径一起使用.

当参数文件和其它参数一起使用时, 参数文件中的参数列表会出现在参数文件选项所在的位置. 也就是说, 在参数文件选项之前的选项, 会被参数文件中的选项覆盖掉, 而在其之后的则相反. 同时参数文件选项 —argumentfile 还可以多次指定, 甚至递归地使用:

  1. robot --argumentfile all_arguments.robot
  2. robot --name Example --argumentfile other_options_and_paths.robot
  3. robot --argumentfile default_options.txt --name Example my_tests.robot
  4. robot -A first.txt -A second.txt -A third.txt tests.robot

从标准输入中读取参数文件

特殊的参数文件名 STDIN 可以用来从标准输入中读取参数文件. 这在使用脚本生成参数文件时很有用, 例如:

  1. generate_arguments.sh | robot --argumentfile STDIN
  2. generate_arguments.sh | robot --name Example --argumentfile STDIN tests.robot