web-dev-qa-db-ja.com

RobotFrameworkの2つの変数の合計

私には2つの変数があります:

${calculatedTotalPrice} = 42,42

${productPrice1} = 43,15

実行しました

${calculatedTotalPrice}     Evaluate ${calculatedTotalPrice}+${productPrice1}

私は得た

42,85,15

どうすれば解決できますか?

7
buurkeey

デフォルトでは、変数はRobotの文字列です。したがって、最初の2つのステートメントは、「xx、yy」のような文字列を変数に割り当てています。次に、「evaluate」は、Pythonのようにステートメントを実行するだけです。したがって、2つの文字列をコンマで追加すると、リストが生成されます。

$ python
>>> 1,2+3,4
(1, 5, 4) 

したがって、$ {}とを使用して 数値変数 を使用する必要があります。 (ドット)この例のようなセパレーターの場合:

*** Test Cases ***
sum of variables
  ${calculatedTotalPrice} =    set variable    ${42.42}
  ${productPrice1} =    set variable    ${43.15}
  ${calculatedTotalPrice} =    Evaluate    ${calculatedTotalPrice}+${productPrice1}
  log to console  ${calculatedTotalPrice}

これにより、次のものが生成されます。$ pybot test.robot

==============================================================================
Test
==============================================================================
sum of variables                                                      ...85.57
==============================================================================
13

Laurentの答えはほとんどの場合最良のコースですが、何らかの理由でRobot変数を数値を含む文字列にする必要がある場合は、Evaluate呼び出し内でそれらを数値に変換することもできます。

*** Test Cases ***
Test1
    ${I1} =    set variable  10
    ${I2} =    set variable  5
    ${F1} =    set variable  42.42
    ${F2} =    set variable  57.15
    ${ISUM} =    Evaluate    int(${I1}) + int(${I2})
    ${FSUM} =    Evaluate    float(${F1}) + float(${F2})
    log to console  ${ISUM} ${FSUM}

これにより、次の出力が得られます。

Test1                                                                 ......15 99.57
0
Mitch