Evaluating IF condition failed: Evaluating expression

robotframework
本ページはプロモーションが含まれています

はじめに

robotframewokでコードを書いている時にエラーが出ました。
この時はIF文が原因で発生したものです。

今回はその時の原因と対処方法についてのメモです。

エラー

まず発生したエラーです

Evaluating IF condition failed: Evaluating expression *** = *** failed: SyntaxError: invalid syntax (<string>, line 1)

エラーによると、

IF文の評価で「*** = ***(***は任意の文字列)」で失敗しました。
文法エラーです。無効な文法です。

となっています。
エラーからすると文法ミスだったようです。

当時のソースはそのまま使えないので、同じエラーが発生するとてもシンプルなソースコードを。

*** Test Cases ***
IF_ELSEのケース
    ${color} = Set Variable   "Green"

    IF ${color} = "Green"
        Log to Console    \nGreen
    ELSE
       Log to Console     \nnot a Green
    END

これを実行すると

==============================================================================
If Fail Pttn                                                                  
==============================================================================
IF_ELSEのケース                                                       | FAIL |
Evaluating IF condition failed: Evaluating expression '"Green" = "Green"' failed: SyntaxError: invalid syntax (<string>, line 1)
------------------------------------------------------------------------------
If Fail Pttn                                                          | FAIL |
1 test, 0 passed, 1 failed
==============================================================================

という様に同様のエラーが。

原因&対処方法

原因はエラーから予想できますが文法ミスです。
ただ何処が違うのかは始めてコーディングしている時はさっぱりでした。

理由はシンプルで、IFの判定部分が「=」となっていますが「==」としなければいけませんでした。

*** Test Cases ***
IF_ELSEのケース
    ${color} = Set Variable   "Green"

    IF ${color} == "Green"
        Log to Console    \nGreen
    ELSE
        Log to Console    \nnot a Green
    END

これを実行すると

==============================================================================
If Fail Pttn                                                                  
==============================================================================
IF_ELSEのケース                                                       .
Green
IF_ELSEのケース                                                       | PASS |
------------------------------------------------------------------------------
If Fail Pttn                                                          | PASS |
1 test, 1 passed, 0 failed
==============================================================================

IF文がエラーが出ることなく実行出来ました。

さいごに

今回はrobotframeworkでのIF文のエラーについてでした。
色々なプログラムのスクリプトを広く浅く書くことが多く、時々文法がごっちゃになることがあり今回もこれが原因でした。
robotframeworkはpythonで出来ているのにpythonライクじゃないので混乱することが多いのですが今回もその1つでした。

理由を知ればシンプルですが、久しぶりにプログラムを書くとこんな事があるので皆さんもご注意を。

この記事がお役に立ったのなら嬉しいです。
最後までお読みいただきありがとうございます。

タイトルとURLをコピーしました