テストケースが失敗としてマークされた後、テストメッセージの設定ログ値を表示できません

プログラマー

私は以下のコードを持っています:

*** Settings ***
Library     OperatingSystem
Library     Process
Library     String


*** Variables ***
@{MyList}=   item   items   items2
${LogStr1}   *HTML*

*** Test Cases *** 
#Start Test#
[xxxxx] My tests
    FOR  ${item}  IN   @{MyList}
        General                test.out         testProfile          ${item}
        [Template]    Run Test                                                                                                                                                         
        [Tags]    TestTags
    END

*** Keywords *** 
Run Test
    [Documentation]    Run the test
    [Arguments]       ${type}     ${profile}     ${file}    ${test}
            When suite config is updated 
            And updated the config in directory ${test}
            Then publish test status

suite config is updated
           [Documentation]    Get the variables list
            Log to Console     "Updating get suite config file"


updated the config in directory ${test}
    [Documentation]    Get the variables list 
         Run keyword if      "${test}" == "items"    Stop Test      "This is stop called"

publish test status 
    [Documentation]    Create and check if any issue found
            ${LogStr}=     Catenate     Test Passed : Log created:     <a href="Hello.txt">Hello</a>
            Log to Console       ${LogStr}
            ${LogStr1}=     Catenate         ${LogStr1}              ${LogStr}\n
            Set Test Variable    ${LogStr1}
            Set Test Message     ${LogStr1}

Stop Test  
    [Documentation]    Stop Execution 
    [Arguments]       ${FIALUREMSG}        
    Log To Console    ${FIALUREMSG}
    ${LogStr1}=     Catenate         ${LogStr1}              ${FIALUREMSG} 
      Fail        ${LogStr1}
  

コードに従って、テストは1回目の2回目または3回目の実行で実際に失敗するようにすることができます。だから私が次のようなコードを持っているとき:

Run keyword if      "${test}" == "item"    Stop Test      "This is stop called"

上記のキーワードには、スイートに合格する2つのテストケースがありますが、レポートには次のように記載されています。

失敗ログ

2番目のテストケースを失敗させると、以下のテストメッセージログが表示されます。

Run keyword if      "${test}" == "items"    Stop Test      "This is stop called"

上記のキーワードには、スイートに合格する2つのテストケースがありますが、レポートには次のように記載されています。

2番目の障害ログ

同様に

 Run keyword if      "${test}" == "items2"    Stop Test      "This is stop called"

3番目の障害ログ

など-したがって、テストケースが失敗としてマークされている場合、「テストメッセージの設定」ログ値はレポートメッセージで無視されるようです。以下は、最初のテストケースを失敗としてマークするコードを実行したときのlog.htmlコンテンツであることに注意してください。

Run keyword if      "${test}" == "item"    Stop Test      "This is stop called"

最後のエラーレポート

したがって、私の質問はすべて、report.htmlファイルにすべての失敗したテストケースと合格したテストケースのログを表示したい場合、どうすればそれを達成できるかということです。

Bence Kaulics

If you check the documentation of the Set Test Message keyword it says that any failure will override the messages, but you have the option to override the failure message from the teardown.

In test teardown this keyword can alter the possible failure message, but otherwise failures override messages set by this keyword. Notice that in teardown the message is available as a built-in variable ${TEST MESSAGE}.

So what you can do is instead of calling Set Test Message, you could just save the messages into a test variable. Then you should add a teardown in which you call the Set Test Message and concatenate your test variable with the ${TEST MESSAGE}. For example:

*** Test Cases ***
Test
    [template]    Template
    [setup]    Set Test Variable    ${MSG}    ${EMPTY}    # create empty test variable to store messages
    1
    3
    2
    5
    6
    4
    6
    [teardown]    Set Test Message    ${MSG}\n${TEST MESSAGE}    # concatenate failure messages to normal test messages


*** Keywords ***
Template
    [arguments]    ${number}
    No Operation
    Run Keyword If    ${number} == 2    Fail      fail message ${number}
    Run Keyword If    ${number} == 4    Fail      fail message ${number}
    Set Test Variable    ${MSG}    ${MSG}\nMy test message ${number}    # concatenate next test message

This example produces the following report:

ここに画像の説明を入力してください

このアプローチでは、テストケースの表にリストされているすべてのテストがテンプレートを呼び出すため、特定のロボットスイートでテンプレートテストのみを行うことができます。



他の完全に異なる解決策はFOR、の要素@{MyList}が静的であるため、ループを取り除くことです。テンプレートを[設定]テーブルに移動してから、すべての反復を手動で一覧表示すると、それぞれを独立したテストケースに分けることができます。このように、1回の反復で失敗しても、他の反復で設定されたテストメッセージには影響しません。例えば:

*** Settings ***
Test Template     Template

*** Test Cases ***
Test1    1
Test2    2
Test3    3
Test4    4
Test5    5
Test6    6


*** Keywords ***
Template
    [arguments]    ${number}
    No Operation
    Run Keyword If    ${number} == 2    Fail      fail message ${number}
    Run Keyword If    ${number} == 4    Fail      fail message ${number}
    Set Test Message    My test message ${number}

これにより、次のレポートが生成されます。

ここに画像の説明を入力してください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

独自のブートローダーを構築していますが、qemu を使用してそれをエミュレートすると、「ブートに失敗しました: ブート ディスクを読み取れませんでした」というメッセージが表示されます。

分類Dev

柑橘系フレームワークを使用してメッセージをWebsphereMQに配置するxmlテストケースを実行しているときに、jmsメッセージのメッセージIDを設定できません

分類Dev

C#:データベースにオブジェクトを追加しているときに、「MySqlException:子行を追加または更新できません:外部キー制約が失敗します」というメッセージが表示されます

分類Dev

アプリケーションのインストールに失敗しましたインストールに失敗しましたというメッセージが表示されますセッションを終了できませんでした:INSTALL_PARSE FAILED MANIFEST MALFORMED

分類Dev

Jenkins TestNGの結果で、[テストケースの失敗]リンクが開き、エラーメッセージが表示されます

分類Dev

CentOS 6.5は、「Xの起動に失敗し、テキストモードにフォールバックしました」というメッセージが表示された後、最小モードでインストールされます。

分類Dev

JUnitテストでスローされた例外メッセージのスタックトレースを表示しません

分類Dev

Azure関数:公開が失敗し、「外部プロセスによってロックされているため、Webデプロイは宛先のファイルを変更できません。」というメッセージが表示されます。

分類Dev

Devstackのインストールが失敗し、エラーメッセージ「XXX:プロセスが見つかりません」が表示されました

分類Dev

Visual Studio 2017でSQLテーブルを削除しようとすると、SSOXで「オブジェクト定義ウィンドウが開いているためにデータベースオブジェクトを削除できません」というメッセージが表示されるのはなぜですか。

分類Dev

セレンオートメーションは:どのようなテストスイートを実行しているとき以外に有効なのが失敗した失敗したテストケースの許容範囲でなければなりませんか?

分類Dev

PHPでプリペアドステートメントを使用した後、セッションメッセージが表示されませんでした

分類Dev

MdPaginatorIntlプロバイダーを設定した後、「未定義のプロパティ「サブスクライブ」を読み取れません」というメッセージが表示されます。

分類Dev

Xcode UIテスト-UIテストの失敗-検索フィールドの[キャンセル]ボタンをタップすると、(AXアクションによって)表示にスクロールできませんでした

分類Dev

JMSメッセージリスナーの実行に失敗し、ErrorHandlerが設定されていません

分類Dev

スペックフローステップ定義レポートを生成しようとすると、「オブジェクトの現在の状態が原因で操作が無効です」というエラーメッセージが表示されました。

分類Dev

Ansibleプレイブック実行の「apt」モジュールが毎回異なるホストでランダムに失敗し、「排他的操作のためにaptをロックできませんでした」というメッセージが表示されます

分類Dev

CreateMLを使用してテキスト分類モデルを作成するときに、「エラーがスローされ、キャッチされませんでした。提供された検証データには...が含まれている必要があります」というメッセージが表示されます。

分類Dev

アップグレード後、プロジェクトはリソースファイルRを見つけることができませんでしたが、アプリを実行してもエラーは表示されません。の解き方

分類Dev

「ヒントでnullのプロパティ 'innerHTML'を設定できません」というメッセージが表示されるのはなぜですか

分類Dev

動的なAndroidフラグメントを作成しているときに、フラグメントマネージャーを使用して、そのフラグメントを表示してテキストを設定できません。

分類Dev

Visibleプロパティがfalseに設定されている場合、あるテキストボックスの値を別のテキストボックスにコピーすることはできません

分類Dev

mpiを実行すると、「システムで使用できるスロットが足りません」というメッセージが表示されます。

分類Dev

mockitoテストは、junitテストとして実行したときにそのようなメソッドエラーを発生させませんが、実行設定でjarを手動で追加すると、うまく実行されます

分類Dev

タスクマネージャにプロセスが表示されていなくても、クラッシュした後、EXEを削除できません

分類Dev

「リソースの読み込みに失敗しました:サーバーがステータス404(見つかりません)で応答しました」というエラーメッセージが表示されます

分類Dev

Facebookログインメッセージ:「URLがブロックされました:リダイレクトURIがアプリのクライアントOAuth設定でホワイトリストに登録されていないため、このリダイレクトは失敗しました。」

分類Dev

Facebookログインメッセージ:「URLがブロックされました:リダイレクトURIがアプリのクライアントOAuth設定でホワイトリストに登録されていないため、このリダイレクトは失敗しました。」

分類Dev

Nantを実行すると、sdk 2.0がインストールされた後でも、「「net-2.0」フレームワークのSDKが使用できないか、構成されていません」というメッセージが表示されます。

Related 関連記事

  1. 1

    独自のブートローダーを構築していますが、qemu を使用してそれをエミュレートすると、「ブートに失敗しました: ブート ディスクを読み取れませんでした」というメッセージが表示されます。

  2. 2

    柑橘系フレームワークを使用してメッセージをWebsphereMQに配置するxmlテストケースを実行しているときに、jmsメッセージのメッセージIDを設定できません

  3. 3

    C#:データベースにオブジェクトを追加しているときに、「MySqlException:子行を追加または更新できません:外部キー制約が失敗します」というメッセージが表示されます

  4. 4

    アプリケーションのインストールに失敗しましたインストールに失敗しましたというメッセージが表示されますセッションを終了できませんでした:INSTALL_PARSE FAILED MANIFEST MALFORMED

  5. 5

    Jenkins TestNGの結果で、[テストケースの失敗]リンクが開き、エラーメッセージが表示されます

  6. 6

    CentOS 6.5は、「Xの起動に失敗し、テキストモードにフォールバックしました」というメッセージが表示された後、最小モードでインストールされます。

  7. 7

    JUnitテストでスローされた例外メッセージのスタックトレースを表示しません

  8. 8

    Azure関数:公開が失敗し、「外部プロセスによってロックされているため、Webデプロイは宛先のファイルを変更できません。」というメッセージが表示されます。

  9. 9

    Devstackのインストールが失敗し、エラーメッセージ「XXX:プロセスが見つかりません」が表示されました

  10. 10

    Visual Studio 2017でSQLテーブルを削除しようとすると、SSOXで「オブジェクト定義ウィンドウが開いているためにデータベースオブジェクトを削除できません」というメッセージが表示されるのはなぜですか。

  11. 11

    セレンオートメーションは:どのようなテストスイートを実行しているとき以外に有効なのが失敗した失敗したテストケースの許容範囲でなければなりませんか?

  12. 12

    PHPでプリペアドステートメントを使用した後、セッションメッセージが表示されませんでした

  13. 13

    MdPaginatorIntlプロバイダーを設定した後、「未定義のプロパティ「サブスクライブ」を読み取れません」というメッセージが表示されます。

  14. 14

    Xcode UIテスト-UIテストの失敗-検索フィールドの[キャンセル]ボタンをタップすると、(AXアクションによって)表示にスクロールできませんでした

  15. 15

    JMSメッセージリスナーの実行に失敗し、ErrorHandlerが設定されていません

  16. 16

    スペックフローステップ定義レポートを生成しようとすると、「オブジェクトの現在の状態が原因で操作が無効です」というエラーメッセージが表示されました。

  17. 17

    Ansibleプレイブック実行の「apt」モジュールが毎回異なるホストでランダムに失敗し、「排他的操作のためにaptをロックできませんでした」というメッセージが表示されます

  18. 18

    CreateMLを使用してテキスト分類モデルを作成するときに、「エラーがスローされ、キャッチされませんでした。提供された検証データには...が含まれている必要があります」というメッセージが表示されます。

  19. 19

    アップグレード後、プロジェクトはリソースファイルRを見つけることができませんでしたが、アプリを実行してもエラーは表示されません。の解き方

  20. 20

    「ヒントでnullのプロパティ 'innerHTML'を設定できません」というメッセージが表示されるのはなぜですか

  21. 21

    動的なAndroidフラグメントを作成しているときに、フラグメントマネージャーを使用して、そのフラグメントを表示してテキストを設定できません。

  22. 22

    Visibleプロパティがfalseに設定されている場合、あるテキストボックスの値を別のテキストボックスにコピーすることはできません

  23. 23

    mpiを実行すると、「システムで使用できるスロットが足りません」というメッセージが表示されます。

  24. 24

    mockitoテストは、junitテストとして実行したときにそのようなメソッドエラーを発生させませんが、実行設定でjarを手動で追加すると、うまく実行されます

  25. 25

    タスクマネージャにプロセスが表示されていなくても、クラッシュした後、EXEを削除できません

  26. 26

    「リソースの読み込みに失敗しました:サーバーがステータス404(見つかりません)で応答しました」というエラーメッセージが表示されます

  27. 27

    Facebookログインメッセージ:「URLがブロックされました:リダイレクトURIがアプリのクライアントOAuth設定でホワイトリストに登録されていないため、このリダイレクトは失敗しました。」

  28. 28

    Facebookログインメッセージ:「URLがブロックされました:リダイレクトURIがアプリのクライアントOAuth設定でホワイトリストに登録されていないため、このリダイレクトは失敗しました。」

  29. 29

    Nantを実行すると、sdk 2.0がインストールされた後でも、「「net-2.0」フレームワークのSDKが使用できないか、構成されていません」というメッセージが表示されます。

ホットタグ

アーカイブ