1

テストが失敗したときに通知を受け取りたい。理想的には、 @After アノテーション付きメソッドでテストが成功したか失敗したかを知りたいです。この目的に使用できる RunListener であることは理解していますが、JunitCore でテストを実行した場合にのみ機能します。テスト ケースが失敗した場合、または SpringJUnit4ClassRunner で使用できる RunListener に似たものがある場合に通知を受け取る方法はありますか?

4

2 に答える 2

5

Spring TestContext フレームワークは、TestExecutionListenerこれを実現するために使用できる SPI を提供します。

基本的には、実装TestExecutionListener(できれば拡張AbstractTestExecutionListener)すれば、afterTestMethod(TestContext)メソッドを実装できます。渡されたから、TestContextスローされた例外にアクセスできます (存在する場合)。

のJavadocは次のorg.springframework.test.context.TestContext.getTestException()とおりです。

テスト メソッドの実行中にスローされた例外を取得します。

注: これは変更可能なプロパティです。

戻り値: スローされた例外、または例外がスローされなかった場合は null

@TestExecutionListeners参考までに:アノテーションを介して顧客リスナーを登録できます。

よろしく、

サム

于 2014-02-06T21:28:56.733 に答える
0

代替手段は JUnits 組み込みTestWatcherルールです。

このルールを使用すると、通知を受け取る内容を選択できます。JUnit Github Docsの圧縮された例を次に示します。

@Test 
public class WatcherTest {

  @Rule
  public final TestRule watcher = new TestWatcher() {

    @Override
    protected void failed(Throwable e, Description) {}

    // More overrides exists for starting, finished, succeeded etc
  };

  @Test
  public void test() {}
}
于 2017-02-27T01:05:14.150 に答える