2016-04-19 4 views
2

私のアプリケーション用のJUnitテストをいくつか開発しています。JUnitテストの所要時間はEclipseでどのように計算されますか?

Eclipseでテストを実行すると、下の図に示すように、テストごとに結果が得られます。

enter image description here

しかし、それはどのように計算されますか? @Beforeメソッドと@Afterメソッドで費やされた時間を各テストに含めるか、@Testメソッドで費やされた時間だけを考慮に入れていますか?

あなたは

+1

なぜテストしないのですか? '@ Before'や' @ After'でアノテーションされたメソッドでは、長時間実行されているタスクを実行し、結果に影響を与えるかどうかを確認してください。 –

+2

日食は何も計算していません。 junitテストランナーが計算を実行しています。 '@ Before'メソッドと' @ After'メソッドはテストの期間に含まれていないようです。 – DwB

+0

私はThread.sleep(5000)を追加しました。 Beforeメソッドでは、テストの最後の時間は7秒以上です。私は、これは、費やされた時間がBeforeメソッドとAfterメソッドも考慮に入れていることを意味すると思います...そうではありませんか? – gvdm

答えて

0

あり、JUnitの中に、intrefaceはTestListenerと呼ばありがとうございます。 JUnitは、各テスト実行に添付された実装をいくつか提供します。これらの実装の1つはクラスの内部Listenerクラスです。そのように時間を計算する

public void testRunStarted(Description description) throws Exception { 
    startTime.set(System.currentTimeMillis()); 
} 

@Override 
public void testRunFinished(Result result) throws Exception { 
    long endTime = System.currentTimeMillis(); 
    runTime.addAndGet(endTime - startTime.get()); 
} 

コードはorg.junit.runner.Resultから取得しました。JUnit 4.12。

計算後、JUnitはすべてのResultのテストを含む「レポート」を発行します。 EclipseやIdeaのようなIDEは、JU​​nitをテストするために&の "report"を解析するTestListenerの実装を添付します。最後にIDEからのリスナーがIDEウィンドウにメッセージを送信すると、テスト結果と時間が表示されます。

関連する問題