ROBOT框架:在参数文件中使用环境变量

时间:2016-02-02 16:58:56

标签: robotframework

这是我想要做的基本概述:

我想使用参数文件调用我的脚本。但是参数文件需要处理路径的环境变量。因此,例如,参数文件可能是:

args.robot

[ROBOT_HOME variable]/test1.robot
[ROBOT_HOME variable]/test2.robot
[ROBOT_HOME variable]/test3.robot

我会在环境级别定义ROBOT_HOME变量:

$ export ROBOT_HOME=/path/to/tests/
$ pybot -A args.robot

args.robot 文件中[ROBOT_HOME variable]的以下替换均无效:

  • $ROBOT_HOME
  • ${ROBOT_HOME}
  • %{ROBOT_HOME}

以下两个pybot命令都没有起作用:

  • pybot -A args.robot
  • pybot -v ROBOT_HOME:$ROBOT_HOME -A args.robot

我正在尝试做什么?

1 个答案:

答案 0 :(得分:0)

@Rao为该问题提供了很好的解决方案。 documentation on arguments file的最后一部分演示了如何以编程方式生成参数文件并将其与单行代码一起使用。

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

现在剩下的问题是generate_arguments.sh是什么?我喜欢使用envsub,用envsub替换脚本中的环境变量(对于Linux env)

envsubst '$HOME' < "argumentfile.txt" > "argumentfile.txt"
echo "argumentfile.txt"

运行该脚本的另一种可能性是:

generate_arguments.sh && robot --argumentfile "argumentfile.txt"