0

次のようなライブラリmanagement_utils.pyがあります。

path = global_settings.get_rdio_base_path()
if path == "":
     raise PathRequiredError("Path is required...")

def some_keyword():
     # keyword requires path to be set to some valid value

私のテストケースファイルには、次のようなものがあります。

***Settings***
Library     management_utils

***Test Cases***
Smoke Test
  some keyword
...

management_utilsのセットアップが失敗した場合、これらのテストケースの実行を中止することは可能ですか?基本的に、management_utils.pyでPathRequiredErrorが発生した場合は、これらのテストケースの実行を中止したいと思います。

テストを実行すると、エラーが発生しているのがわかりますが、実行は続行されます。

Robotのドキュメントで、エラークラスでROBOT_EXIT_ON_FAILURE = Trueを設定できることを確認しましたが、この場合は機能しないようです。また、理想的には、すべてのテスト実行ではなく、このライブラリを必要とするテストケースのみを中止するように、よりきめ細かい処理を実行できるようにします。

ありがとうございました!

4

1 に答える 1

0

問題は、モジュールの最上位にあるため、ライブラリのロード中に例外が発生することです。ROBOT_EXIT_ON_FAILURE は、失敗がキーワードに起因する場合にのみ影響します。

代わりに、次のようにします。

def get_path():
    path = global_settings.get_rdio_base_path()
    if path == "":
        raise PathRequiredError("Path is required...")

def some_keyword():
   path = get_path()
   ...

キーワード内で例外が発生し、テストの実行が停止します。

もう 1 つの点については、ROBOT_EXIT_ON_FAILURE を使用して一部のテストだけを中止する方法はありません。

于 2013-01-30T11:25:05.953 に答える