如何在robotframework中为嵌套变量创建一个新值/为该值分配新值?

时间:2018-10-19 06:59: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  

2 个答案:

答案 0 :(得分:3)

将变量用作变量的变量时,变量内部的变量将起作用 关键字,但是在分配新变量时它们不起作用。 发生此错误是因为"${A_NEW_VAR_${nested}}"是无效的 变量中的变量,因此框架认为它必须是 要执行的关键字。

请从此处找到参考:variable inside variable

答案 1 :(得分:3)

您可以使用关键字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