web-dev-qa-db-ja.com

RobotFrameworkは現在のテストケースの名前を取得します

テストケースごとに分類された一連のテストデータがあり、各テストケースのデータをロードするテストセットアップキーワードが必要です。このようなものが機能します:

*** 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ライブラリとして作成できます。アクセスできる現在のテストケースの名前を格納するクラスはありますか?

15
Lorkenpeist

少し掘り下げた後、私はこれを ドキュメント で見つけることができました:

組み込み変数${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}
30
Lorkenpeist

また、メインのtxtファイルの名前を保持する${SUITE NAME}変数があります。

4
mdixey

スイート内のテストケースの名前が必要な場合は${TEST_NAME}を使用でき、テストケースを含むファイル(一般にテストスイートと呼ばれます)の名前を取得するには${SUITE_NAME}を使用できます。

この機能は、テストケースでエラーが発生し、Teardownを使用して、失敗したテスト名でスクリーンショットファイルの名前を変更する場合に役立ちます。

Test Teardown

    Take Screenshot     ${TEST NAME}.jpeg
    Kill Program

$ {TESTNAME}に空のスペースと\ /文字が含まれていないことを確認してください。そうでない場合、RIDEはファイル名ではなくディレクトリを想定してエラーを出力します。私はこれを見つけるのにとても苦労していました。

2
pedrommvv

追加のコメントやアイデアと同じように、ファイルやより複雑なロジックを処理したい場合は、より詳細に制御できます。カスタムロボットライブラリをPythonで作成することをお勧めします。

その場合、次の方法で「自動変数」または組み込みのロボット変数にアクセスすることもできます。

from robot.libraries.BuiltIn import BuiltIn
BuiltIn().get_variable_value("${TEST NAME}")
1
brada

キーワード「GetTitle」は、現在のテストケースファイル名を返します。次のコードが機能します。

Load Test Data
    ${title}=   get title
    Set Test Variable   ${data}     ${title}
    Log  ${data}
0
Omar Mughrabi