はじめに
robotrfameworkでkeywordsの結果を戻り値として受け取り別のテストケースに引数とした渡そうとしました。
そのためkeywordsの結果を返す時にreturnを使ったんですが、エラーメッセージが表示されました。
エラーメッセージは、
'Return' is a reserved keyword.
というものです。
エラーの原因
エラーメッセージは、『’Return’ is a reserved keyword.』とあり、「Returnは予約後だよ」と言っています。
発生した原因は戻り値の書き方が誤っていた(文法ミス)からでした。
Returnだけを指定していたので、上のような「robotframeworkで前もって使われている予約語を使わないでね」というメッセージが出たわけです。
言葉だけだと分かりにくいのでサンプルのソースコードを
エラーが出るサンプルコード
そのままエラーが出た時のソースコードを使うのは分かりづらいので、エラーのシンプルな例を。
ファイル名は「return_error.robot」です。
シンプルなソースですが、引数をreturnで返そうとしています。
# return_error.robot
*** Keywords ***
test_error_case
# 変数に文字列を代入
${text} = Set variable "test"
Return ${text}
*** Test Cases ***
リターンがエラーになるケース
${return_text} = test_error_case
Log to Console ${text}
これを実行すると
==============================================================================
Return Error
==============================================================================
リターンがエラーになるケース | FAIL |
'Return' is a reserved keyword.
------------------------------------------------------------------------------
Return Error | FAIL |
1 test, 0 passed, 1 failed
==============================================================================
とエラーメッセージが表示されます。
次に、どうやってReturnを返すかの方法です。
正しいReturnを返すサンプルコード
正しくReturnを返すサンプルコードです。
ファイル名は「return_arg_correctly.robot」です
# return_arg_correctly.robot
*** Keywords ***
test_error_case
# 変数に文字列を代入
${text} = Set variable "test"
Return From Keyword ${\n}${text}
*** Test Cases ***
リターンがエラーにならないケース
${return_text}= test_error_case
Log to Console ${return_text}
「Return」ではなく「Return From Keyword」を使う必要があります。
実行すると、
==============================================================================
Return Arg Correctly
==============================================================================
リターンがエラーにならないケース .
"test"
リターンがエラーにならないケース | PASS |
------------------------------------------------------------------------------
Return Arg Correctly | PASS |
1 test, 1 passed, 0 failed
==============================================================================
と${return_text}で正しく戻り値として受け取った値がログに表示されています。
どうしてもPythonや他のプログラムに慣れているとそのままReturnを使いたくなりますが、robotframeworkでは使えませんので注意ですね。
さいごに
とうことで今回はrobotframeworkでの戻り値についてでした。
戻り値を使いたいことはテスト中でもあると思いますので、エラーが出た時は文法が間違ってないか確認してください。
この記事がお役に立ったのなら嬉しいです。