はじめに
以前にrobotframeworkで型を調べたことがありました。
今回もデバッグ中に型を調べていたのですがその時にエラーがでました。
今回はその時のエラーの原因と対処方法のメモです。
エラー&サンプルソース
次のソースは型を調べる簡単なサンプルソースです。
*** Test Cases ***
変数の型を調べる
${string}= Set Variable 2
${param_type}= Evaluate type(${string})
Log to Console ${param_type}
これを実行するとエラーが出てしまいます。
==============================================================================
Test
==============================================================================
変数の型を調べる | FAIL |
No keyword with name 'Evaluate type(${string})' found.
Did you try using keyword 'BuiltIn.Evaluate' and forgot to use enough whitespace between keyword and arguments?
------------------------------------------------------------------------------
Test | FAIL |
1 test, 0 passed, 1 failed
==============================================================================
エラー部分の
No keyword with name ‘Evaluate type(${string})’ found. Did you try using keyword ‘BuiltIn.Evaluate’ and forgot to use enough whitespace between keyword and arguments?
は、
「キーワード”Evaluate type(${string})”というものは見つかりません。
もしかしてBuiltIn.Evaluateキーワードを利用しようとしましたか?
またキーワードと引数の間に十分な空白を入れるのを忘れていませんか?」
と言っています。
原因&対策
エラーのメッセージから推測できますが、キーワードと引数の間に十分なスペースがないからです。
robotframeworkはキーワードと引数の間に空白(「|」も利用可能)が必要です。
(pythonで言うところの「,」に当たります)
そして区切りのスペースは空白2文字以上開ける(Tabでも可能)必要があります。
上のソースでは「Evaluate」と「type(${string})」の間には空白が1行分しかありません。
(テキストツール間やWebサイトからコピペしたりすると2行以上とっていた空白やTabが1行になることがあるので注意ですね。
修正したソースコードは次のようになります。
*** Test Cases ***
変数の型を調べる1
${string}= Set Variable 2
${param_type}= Evaluate type(${string})
Log to Console ${param_type}
これを実行すると
==============================================================================
Test
==============================================================================
変数の型を調べる1 ..<class 'int'>
変数の型を調べる1 | PASS |
------------------------------------------------------------------------------
Test | PASS |
1 test, 1 passed, 0 failed
==============================================================================
とテストをPassすることが出来ます。
さいごに
今回はrobotframeworkでキーワードと引数の間の空白の文字数についてのエラーでした。
この原因はrobotframeworkでは本当によく起こるので注意ですね。
「|」を使わず空白を使う場合はTabを使う様にしたほうがいいかと思います。
また、キーワードと引数の間を明示的に間をかなり空けるというのも良いかもしれません。
この記事がお役に立ったのなら嬉しいです。
最後までお読みいただきありがとうございます。