Evaluating expression ‘*** = ‘***” failed: SyntaxError: invalid syntax

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

はじめに

今回はrobotframeworkでif文を書いていた時に躓いた時のメモです。
初めてrobotframeworkの文字列の判定をする時にかなり迷ったので共有します。

表示されたエラーは

Evaluating expression '*** = '***'' failed: SyntaxError: invalid syntax

というものです。
(***部分は条件式の文字列で異なります)

下はエラーが出た時のソースと同じエラーが出るサンプルプログラムです。

*** Variable ***
${var} =      @{empty}
${fuit}=      orange
${vegetable}=   tomato


*** Test Cases ***
変数を動的に振り分けテスト1
${flg}=      Set Variable      fruit
${var}=      Set Variable If   ${flg} = 'fruit'   ${fuit}   ${vegetable}
Log to Console   今日は${var}を食べたい気分

エラー&原因

上のソースを実行すると

==============================================================================
Set Variables                                                                 
==============================================================================
変数を動的に振り分けテスト1                                          | FAIL |
Evaluating expression 'fruit = 'fruit'' failed: SyntaxError: invalid syntax (<string>, line 1)
Set Variables                                                         | FAIL |
1 tests, 0 passed, 1 failed
==============================================================================

というようにエラーが表示されます。

Evaluating expression 'fruit = 'fruit'' failed: SyntaxError: invalid syntax (<string>, line 1)

エラーの内容としては、
「条件式’fruit = ‘fruit”が失敗:構文エラー:無効な構文です」と言っています

エラーからするとどうやら文法ミスのようです。
ぱっと見た感じ何が間違いなのか分かりにくいかと。

色々試行錯誤し、次のように直すと上手くプログラムが通るようになりました。

*** Variable ***
${var}        @{empty}
${fruit}       orange
${vegetable}    tomato


*** Test Cases ***
変数を動的に振り分けテスト1
${flg}=    Set variable    fruit
${var}=    Set Variable If    "${flg}" == "fruit"    ${fruit}    ${vegetable}
Log to Console 今日は${var}を食べたい気分
変数の${flg}にも””をつける必要があったようです。
他のプログラムだと変数に””をつけるということがないのでかなり違和感がありますね。

さいごに

今回はrobotframeworkのif文の条件式についてでした。
変数にも””をつける必要があるという別のプログラムだとかなり違和感しか感じない文法ミスでした。
その為、簡単なif文にも関わらずかなり躓く事に…
別の解決方法があるかもしれませんが、ひとまず今回はこれで上手く行きました。

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

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