テストケースごとに分類された一連のテストデータがあり、各テストケースのデータをロードするテストセットアップキーワードが必要です。このようなものが機能します:
*** Keywords ***
Load Test Data
[Arguments] ${test case name}
${data}= Get File ${test case name}.txt
Set Test Variable ${data} ${data}
*** Testcases ***
First Test
Load Test Data First Test
Log ${data}
Second Test
Load Test Data Second Test
Log ${data}
ただし、各テストケースの先頭に「LoadTestData」キーワードを含める必要がないのは良いことです。テストケースの名前を取得できるキーワードがあるので、「テストケースの読み込み」内で呼び出して、テストセットアップキーワードにすることができますか?
*** Settings ***
Test Setup Load Test Data
*** Keywords ***
Load Test Data
${test case name}= Get Test Case Name
${data}= Get File ${test case name}.txt
Set Test Variable ${data} ${data}
*** Testcases ***
First Test
Log ${data}
Second Test
Log ${data}
基本的に、「テストケース名の取得」に相当するものは何でしょうか。
Robot Frameworkのキーワードを使用して簡単に実行できない場合は、Pythonで手を汚してもかまいません。必要に応じて、「LoadTestData」をPythonライブラリとして作成できます。アクセスできる現在のテストケースの名前を格納するクラスはありますか?
少し掘り下げた後、私はこれを ドキュメント で見つけることができました:
組み込み変数${TEST NAME}
があるので、私のテストケースは次のようになります。
*** Settings ***
Test Setup Load Test Data
*** Keywords ***
Load Test Data
${data}= Get File ${TEST NAME}.txt
Set Test Variable ${data} ${data}
*** Testcases ***
First Test
Log ${data}
Second Test
Log ${data}
また、メインのtxtファイルの名前を保持する${SUITE NAME}
変数があります。
スイート内のテストケースの名前が必要な場合は${TEST_NAME}
を使用でき、テストケースを含むファイル(一般にテストスイートと呼ばれます)の名前を取得するには${SUITE_NAME}
を使用できます。
この機能は、テストケースでエラーが発生し、Teardownを使用して、失敗したテスト名でスクリーンショットファイルの名前を変更する場合に役立ちます。
Test Teardown
Take Screenshot ${TEST NAME}.jpeg
Kill Program
$ {TESTNAME}に空のスペースと\ /文字が含まれていないことを確認してください。そうでない場合、RIDEはファイル名ではなくディレクトリを想定してエラーを出力します。私はこれを見つけるのにとても苦労していました。
追加のコメントやアイデアと同じように、ファイルやより複雑なロジックを処理したい場合は、より詳細に制御できます。カスタムロボットライブラリをPythonで作成することをお勧めします。
その場合、次の方法で「自動変数」または組み込みのロボット変数にアクセスすることもできます。
from robot.libraries.BuiltIn import BuiltIn
BuiltIn().get_variable_value("${TEST NAME}")
キーワード「GetTitle」は、現在のテストケースファイル名を返します。次のコードが機能します。
Load Test Data
${title}= get title
Set Test Variable ${data} ${title}
Log ${data}