私のアプリケーション用のJUnitテストをいくつか開発しています。JUnitテストの所要時間はEclipseでどのように計算されますか?
Eclipseでテストを実行すると、下の図に示すように、テストごとに結果が得られます。
しかし、それはどのように計算されますか? @Beforeメソッドと@Afterメソッドで費やされた時間を各テストに含めるか、@Testメソッドで費やされた時間だけを考慮に入れていますか?
あなたは私のアプリケーション用のJUnitテストをいくつか開発しています。JUnitテストの所要時間はEclipseでどのように計算されますか?
Eclipseでテストを実行すると、下の図に示すように、テストごとに結果が得られます。
しかし、それはどのように計算されますか? @Beforeメソッドと@Afterメソッドで費やされた時間を各テストに含めるか、@Testメソッドで費やされた時間だけを考慮に入れていますか?
あなたはあり、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は、JUnitをテストするために&の "report"を解析するTestListener
の実装を添付します。最後にIDEからのリスナーがIDEウィンドウにメッセージを送信すると、テスト結果と時間が表示されます。
なぜテストしないのですか? '@ Before'や' @ After'でアノテーションされたメソッドでは、長時間実行されているタスクを実行し、結果に影響を与えるかどうかを確認してください。 –
日食は何も計算していません。 junitテストランナーが計算を実行しています。 '@ Before'メソッドと' @ After'メソッドはテストの期間に含まれていないようです。 – DwB
私はThread.sleep(5000)を追加しました。 Beforeメソッドでは、テストの最後の時間は7秒以上です。私は、これは、費やされた時間がBeforeメソッドとAfterメソッドも考慮に入れていることを意味すると思います...そうではありませんか? – gvdm