是否可以根据关键字的返回值初始化套件或测试设置中的变量?我尝试过这种语法,但它不起作用:
*** Settings ***
| Suite Setup | ${A variable}= | Set Variable | A String
我知道我可以调用“设置套件变量”之类的关键字,但是他们不允许我将变量设置为另一个关键字的结果。我在这个例子中使用了“Set Variable”,但我希望能够在这里调用任何关键字。
答案 0 :(得分:12)
严格地说,不,这是不可能的。在套件或测试设置中,您只能调用关键字,不能直接在setup语句中将变量设置为其他关键字的结果。
话虽如此,创建一个可以满足您需求的自定义设置关键字很容易。例如:
*** Settings ***
| Suite Setup | Custom suite setup
*** Keywords ***
| Custom suite setup
| | ${A Variable}= | Set Variable | A String
| | Set suite variable | ${A Variable}
以上效果与机器人直接在设置中支持关键字设置变量的效果相同。当然,您可以调用任何关键字,而不仅仅是Set Variable
。
答案 1 :(得分:0)
为了扩展Bryan的答案并为那些对根据关键字的结果创建套件变量不特别感兴趣的人添加说明,还有其他方法可以初始化" global"机器人框架测试开始时的变量。
最简单的方法是将它们放在Variables标题下。
*** Variables ***
${this_string} This String
${that_int} 5
另一种方法是将相同的变量放在Resource .txt文件中。一旦在*** Settings ***
下调用,变量就可以自由使用。假设您将变量放在名为VarList.txt
的文件中,以下代码将初始化它们:
*** Settings ***
Resource VarList.txt
如果您使用包含现有关键字和内部变量的资源文件,这也适用于此。
这一切都假定你想要静态变量。设置套件变量和设置全局变量都可以与Bryan说的关键字一起使用。 Set Suite Variable适用于具有多个测试套件的脚本,而Set Global Variable在这种情况下应该谨慎使用。但是,在单套件脚本中,差异几乎可以忽略不计,但最佳做法是坚持使用Set Suite Variable,除非您真的希望它是全局的,只是在您决定将该套件添加到a脚本运行多个套件。