はじめに
robotframeworkはTest Casesを上から順に実行します。
項目毎に設定したテストケースはそれぞれ独立にPASSかFAILで判定されます。
ですが、試験によってはあるテストケースが失敗したら以降は全てFAILにしたいなんて時もあります。
今回はrobotframeworkでテストがFAILで失敗した場合に強制的に以降のテストをFAILにする方法にするメモです。
テストを強制終了・失敗させる方法
FAILが起きた以降の全てのテストケースを失敗させる場合、コマンド実行時にパラメータのオプションを指定する必要があります。
具体的には「–exitonfailure」をつけます。
以下はサンプルソースで、パラメータの有無でテスト結果が変わる例です。
まずはサンプルプログラムです。
# fail_occur.robot
*** Settings ***
*** Variables ***
*** Keywords ***
*** Test Cases ***
Test1
Log to Console "Test1"
Test2
Log to Console "Test2"
Test3
Fail Test should stop
Test4
Log to Console "Test4"
Test5
Log to Console "Test5"
Test3のケースでテストがFAILするようになっています。
次はコマンドの有無による結果の違いを見ます。
コマンドなしの場合
robot fail_occur.robot
これを実行すると
==============================================================================
Fail Occur
==============================================================================
Test1 "Test1"
Test1 | PASS |
------------------------------------------------------------------------------
Test2 "Test2"
Test2 | PASS |
------------------------------------------------------------------------------
Test3 | FAIL |
Test should stop
------------------------------------------------------------------------------
Test4 "Test4"
Test4 | PASS |
------------------------------------------------------------------------------
Test5 "Test5"
Test5 | PASS |
------------------------------------------------------------------------------
Fail Occur | FAIL |
5 tests, 4 passed, 1 failed
==============================================================================
Test3は当然FAILになります。
Test4以降はPASSとなっています。
次はオプションをつけた例です。
robot --exitonfailure fail_occur.robot
これを実行すると
==============================================================================
Fail Occur
==============================================================================
Test1 "Test1"
Test1 | PASS |
------------------------------------------------------------------------------
Test2 "Test2"
Test2 | PASS |
------------------------------------------------------------------------------
Test3 | FAIL |
Test should stop
------------------------------------------------------------------------------
Test4 | FAIL |
Failure occurred and exit-on-failure mode is in use.
------------------------------------------------------------------------------
Test5 | FAIL |
Failure occurred and exit-on-failure mode is in use.
------------------------------------------------------------------------------
Fail Occur | FAIL |
5 tests, 2 passed, 3 failed
==============================================================================
とTest3以降が全てFAILになっているのが分かると思います。
さいごに
今回はrobotframeworkでテストが失敗した場合に以降のテストを全てFAILにする方法でした。
試験のケースによっては1つのケースが失敗すると全て失敗にしたい場合というのが必ずあると思うので知っておくと便利なコマンドだと思います。
この記事がお役に立ったのなら嬉しいです。
最後までお読みいただきありがとうございます。