2012-02-28 13 views
1

自分のカスタムRunNotifier(デフォルトのものからメソッドを上書きする)を書くと、fireTestFailure()のようなこのメソッドはテストが失敗したときに自動的に呼び出されますか?カスタムRunNotifier

http://junit.sourceforge.net/javadoc/org/junit/runner/notification/RunNotifier.html#RunNotifier()依頼する

もう一つの方法:私はカスタムRunListenerメソッドを上書きして使用するように私は、このメソッドを使用することができますか?

答えて

2

RunNotifierは、テストを実行するクラスによって呼び出されます。テストのために各RunListenerが呼び出されます(複数の場合があります)。独自のRunnerを実装する場合は、独自のRunNotifierを実装することもできますが、一般的にはそうする必要はありません。 RunnerRunNotifierを呼び出し、順番にそれぞれRunListenerを呼び出します。

独自のランナーを実装している場合は、ご希望のものはほとんどすべてJUnitCoreをご覧ください。そして、それぞれのテストの失敗に対してRunNotifierを呼び出します。 JUnitCoreから継承する場合、メソッドのほとんどはすでに存在しています。

テストの進行状況を知りたい場合は、RunListenerを使用してください。

+0

返信いただきありがとうございます!私が遭遇する問題は、JUnitCoreはテスト(pleaseStop())を停止できないということです。だから、Runrを呼び出すランナーを実装してテストランを停止させたいと思います。しかし、もう一度、RunListenerをRunNotifier(addListenerなどは内部使用のみ)やランナーに追加することはできません。だから私の質問は、私はカスタムRunListenerのようなカスタムRunNotifierを処理することができます、ちょうどその関数を上書きし、次に彼らは自動的にテストの失敗、成功などで呼ばれています – ctekk

+2

いいえ、あなたは単純にRunNotifierを置き換えることはできません。 JUnitCore(https://github.com/KentBeck/junit/blob/master/src/main/java/org/junit/runner/JUnitCore.java)のソースを見ると、RunNotifier isn '置き換えることはできません。 @RunWithなどを使用するには、独自のランナーを実装する必要があります。テストを中止したいのであれば、それは具体的な問題です。問題を詳細に説明する別の質問をします。 –

+0

正直言って私はすでにこれを行っています:結果なしのhttp://stackoverflow.com/questions/9312021/junitcore-stoppingまた、カスタムランナーにRunListenerを追加する方法を知っていれば助けになるでしょうか? – ctekk

関連する問題