1

さまざまな環境でさまざまな HTTP メソッドをテストするためのテスト ハーネスと一連の junit テストを作成しています。現在、私はたくさんのテストを書いていますが、最終的にやりたいことは、すべてのエラー/失敗を Junit テストからテキスト ファイルに出力できるようにすることです。これを達成するための最良の方法は何ですか?

たとえば、テストが失敗した場合、junit テストの名前といくつかの情報 (応答ステータス コードやステータス コードの説明など、テスト ハーネス クラスから取得される) を言いたいと思います。

4

2 に答える 2

1

Apache Log4Jを使用してみてください。

もう 1 つの方法は、情報をファイルに送信することです。このチュートリアルを確認してください。テストが失敗した場合append()、情報をファイルに保存できます。

.append(this.class() + respone.getStatus() + response.getCode());
于 2013-07-10T21:24:37.767 に答える
0

https://github.com/junit-team/junit/wiki/Rules#testwatchmantestwatcher-rulesで詳述されている TestWatcher を使用する必要があります

public class WatchmanTest {
  private static String watchedLog;

  @Rule
  public TestRule watchman = new TestWatcher() {
    @Override
    public Statement apply(Statement base, Description description) {
      return super.apply(base, description);
    }

    @Override
    protected void succeeded(Description description) {
      watchedLog += description.getDisplayName() + " " + "success!\n";
    }

    @Override
    protected void failed(Throwable e, Description description) {
      watchedLog += description.getDisplayName() + " " + e.getClass().getSimpleName() + "\n";
    }

    @Override
    protected void skipped(AssumptionViolatedException e, Description description) {
      watchedLog += description.getDisplayName() + " " + e.getClass().getSimpleName() + "\n";
    }

    @Override
    protected void starting(Description description) {
      super.starting(description);
    }

    @Override
    protected void finished(Description description) {
      super.finished(description);
    }
  };

  @Test
  public void fails() {
    fail();
  }

  @Test
  public void succeeds() {
  }
}

メソッドを実装すると、JUnit は、失敗の原因となった例外と、テストに関する詳細情報を保持する Description オブジェクトを含む、failed() メソッドのコールバックを提供しました。また、そのページの ExternalResource クラスを確認する必要があります。これには、書き込み先のファイルなど、TestWatcher で使用するリソースを確実にセットアップおよび破棄する方法が詳しく説明されています。

于 2016-01-25T13:49:16.280 に答える