‘Return’ is a reserved keyword.

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

はじめに

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での戻り値についてでした。
戻り値を使いたいことはテスト中でもあると思いますので、エラーが出た時は文法が間違ってないか確認してください。

この記事がお役に立ったのなら嬉しいです。

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