Robotframework robot测试框架:如果设置变量有效,该如何设置?

Robotframework robot测试框架:如果设置变量有效,该如何设置?,robotframework,Robotframework,我有以下关键词: App For Port [Arguments] ${app} # Try to launch one app on either port, continue if it fails on port 1 and launch it on port 2, record if it fails on both. ${returned_port} Set Variable ${1} : FOR ${port_num}

我有以下关键词:

  App For Port    [Arguments]    ${app}
  # Try to launch one app on either port, continue if it fails on port 1 and launch it on port 2, record if it fails on both.
      ${returned_port}    Set Variable    ${1}
    : FOR    ${port_num}    IN    1    2
    \    ${returned_port}    Set Variable If    ${port_num} == 2    ${2}
    \    Check App Launch    ${app}    ${port_num}
    Return From Keyword    ${returned_port}
${returned\u port}设置变量${1}
工作正常,
${returned\u port}
在此行后为1

但是,,
${returned\u port}设置变量,如果${port\u num}==2${2}
给出
${returned\u port}
无值

我真的很困惑。如何将
${returned\u port}
设置为2??提前谢谢

见文件: 第二个值也可以省略,在这种情况下,它有一个默认值None 如果在第一次循环迭代期间
${returned\u port}
设置为
None
,则表示
设置变量

此外,您还可以稍微简化代码:

App For Port
    [Arguments]    ${app}
    : FOR    ${port_num}    IN    1    2
    \    Check App Launch    ${app}    ${port_num}
。。。同样的道理。是吗?如果需要无条件地从关键字返回值,只需使用
[return]${var}

另一个-您可以考虑使用数据驱动的方法:

参见doc: 第二个值也可以省略,在这种情况下,它有一个默认值None 如果在第一次循环迭代期间

${returned\u port}
设置为
None
,则表示
设置变量

此外,您还可以稍微简化代码:

App For Port
    [Arguments]    ${app}
    : FOR    ${port_num}    IN    1    2
    \    Check App Launch    ${app}    ${port_num}
。。。同样的道理。是吗?如果需要无条件地从关键字返回值,只需使用
[return]${var}


另一个——你可以考虑使用数据驱动的方法:

谢谢,这是有道理的。但是为了简化代码,因为我需要将
检查应用程序启动
实际使用的端口返回到更高级别的关键字,所以我想我需要保持代码对我来说是有意义的。我很高兴这有帮助。谢谢,这很有道理。但是为了简化代码,因为我需要将
检查应用程序启动
实际使用的端口返回到更高级别的关键字,所以我想我需要保持代码对我来说是有意义的。我很高兴这有帮助。