如何在机器人框架中设置相关的全局变量
How to set dependent global variables in robot framework
我有一个资源文件,其中包含一个依赖于另一个全局变量的全局变量。
${VAR1} ${EMPTY}
${VAR2} some_value/${VAR1}.json
在我的测试用例中,我使用 set global variable
关键字
设置了 ${VAR1}
的值
set global variable ${VAR1} foo
log ${VAR1}
log ${VAR2}
我期待 ${VAR1}
的更新反过来也会更新 ${VAR2}
,所以输出应该是:
foo
some_value/foo.json
而不是
foo
some_value/${EMPTY}.json
${Var2} 由命令行传递,优先级最高。
为了覆盖它,您需要在关键字文件中再次定义 ${var2},就像您对 ${var1}
所做的那样
例子
set Suite variable ${VAR1} foo
set Suite variable ${VAR2} some_value/${VAR1}.json
你也可以参考这个答案
在这种情况下,您不需要为 ${VAR1}
分配任何内容
只需在变量部分中声明 ${VAR1} 没有值。
例如
*** variables ***
${VAR1}
${VAR2} some_value/${VAR1}.json
在测试套件中,您需要将 VAR2 声明为全局变量。在测试套件中声明 VAR2 后,每次更新 VAR1 时都会更新 VAR2 的值。
Sample Test
log to console ${VAR1}
log to console ${VAR2}
set global variable ${VAR1} foo
${VAR2}= set variable test/ ${VAR1}
set global variable ${VAR2}
log to console ${VAR1}
log to console ${VAR2}
set global variable ${VAR1} foo2
VAR2 的值现在将是 test/foo2
log to console ${VAR1}
log to console ${VAR2}
我有一个资源文件,其中包含一个依赖于另一个全局变量的全局变量。
${VAR1} ${EMPTY}
${VAR2} some_value/${VAR1}.json
在我的测试用例中,我使用 set global variable
关键字
${VAR1}
的值
set global variable ${VAR1} foo
log ${VAR1}
log ${VAR2}
我期待 ${VAR1}
的更新反过来也会更新 ${VAR2}
,所以输出应该是:
foo
some_value/foo.json
而不是
foo
some_value/${EMPTY}.json
${Var2} 由命令行传递,优先级最高。 为了覆盖它,您需要在关键字文件中再次定义 ${var2},就像您对 ${var1}
所做的那样例子
set Suite variable ${VAR1} foo
set Suite variable ${VAR2} some_value/${VAR1}.json
你也可以参考这个答案
在这种情况下,您不需要为 ${VAR1}
分配任何内容只需在变量部分中声明 ${VAR1} 没有值。 例如
*** variables ***
${VAR1}
${VAR2} some_value/${VAR1}.json
在测试套件中,您需要将 VAR2 声明为全局变量。在测试套件中声明 VAR2 后,每次更新 VAR1 时都会更新 VAR2 的值。
Sample Test
log to console ${VAR1}
log to console ${VAR2}
set global variable ${VAR1} foo
${VAR2}= set variable test/ ${VAR1}
set global variable ${VAR2}
log to console ${VAR1}
log to console ${VAR2}
set global variable ${VAR1} foo2
VAR2 的值现在将是 test/foo2
log to console ${VAR1}
log to console ${VAR2}