【问题标题】:how to create a new/assign a new value to a nested variable in robotframework?如何为机器人框架中的嵌套变量创建新值/分配新值?
【发布时间】:2018-10-19 22:17:17
【问题描述】:

Robotframework 支持“嵌套变量”,如 here 所述。

我尝试了多种方法,但没有找到将新值分配给嵌套变量的方法。查看示例,它甚至没有在 RED 编辑器中验证,执行时会显示以下错误消息:

找不到名为“${VAR_${nested}_VALUE}=”的关键字。

*** Variables ***
${VAR_A_VALUE}=  aValue

*** Test Cases ***
I Got Stuck Here
    Should Be Equal  aValue  ${VAR_A_VALUE}
    ${nested}=  Set Variable    A
    Should Be Equal  aValue  ${VAR_${nested}_VALUE}
    # --- how to assign 
    ${VAR_${nested}_VALUE}=  Set Variable  A new Value  
    # --- or create new variable via nested feeature ?
    ${A_NEW_VAR_${nested}}=  Set Variable  CreatedViaNested  

【问题讨论】:

    标签: robotframework


    【解决方案1】:

    您可以使用关键字Set test variableSet suite variableSet global variable 来做您想做的事。

    这是一个使用Set test variable的例子:

    *** Variables ***
    ${VAR_A_VALUE}=  aValue
    
    *** Test Cases ***
    I Got Stuck Here
        Should Be Equal  aValue  ${VAR_A_VALUE}
        ${nested}=  Set Variable    A
        Should Be Equal  aValue  ${VAR_${nested}_VALUE}
    
        set test variable  ${VAR_${nested}_VALUE}  A new Value    
    
        should be equal  ${VAR_A_VALUE}  A new Value
    

    【讨论】:

      【解决方案2】:

      当您将变量内的变量用作参数时,它们会起作用 关键字,但在分配新变量时它们不起作用。 出现此错误是因为 "${A_NEW_VAR_${nested}}" 不是有效的 赋值中的变量,因此框架认为它必须是 要执行的关键字。

      请从这里找到参考:variable inside variable

      【讨论】:

      • 接受了,虽然这不是一个解决方案,但确认这是不可能的。如果我链接的官方文档与您的链接具有相同的信息,那就太好了
      • @Disc-Addict 我正在扮演一个没有被要求的倡导者,但认为现在应该接受另一个答案 - 它是正确的,并且确实提供了解决方案。
      • 有时解决方案比我们想象的要容易。没有得到Set VariableSet <Scope> Variable 之间的区别。现在接受正确答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-18
      • 1970-01-01
      相关资源
      最近更新 更多