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