0
Junitには特別な注釈がありますが、自動的に使用時間を計算できますか?私は手動でこのように、時間を計算することを避けることができる場合: カスタムストップウォッチを実装するにはどうしたらいいですか?
long start = System.currentTimeMillis();
// do something here
long end = System.currentTimeMillis();
log.info("took time: {}", end - start);
assertTrue((end - start) > 1000L);
は今、私はStopWatch
感じ
@Test
@StopWatch
public void test_sleep_1_seconds(){
sleep1();
assertTrue(stopwatch.runtime(TimeUnit.SECONDS) > 1L);
}
方法:理想的には
@Rule
public Stopwatch stopwatch = new Stopwatch() {
@Override
protected void succeeded(long nanos, Description description) {
logInfo(description, "succeeded", nanos);
}
@Override
protected void failed(long nanos, Throwable e, Description description) {
logInfo(description, "failed", nanos);
}
@Override
protected void skipped(long nanos, AssumptionViolatedException e, Description description) {
logInfo(description, "skipped", nanos);
}
@Override
protected void finished(long nanos, Description description) {
logInfo(description, "finished", nanos);
}
};
、私はこの効果をしたいですカスタムStopWatch
を実装できますか?
感謝を!しかし、カスタムStopWatchアノテーション(MyStopWatch)を実装し、必要に応じてテストメソッドの上で直接使用する場合は、@ Test'' @ Before'と同じように 'junit'が何らかのクラスを実装することでサポートできますか? – zhuguowei
@ zhuguowei可能です。あなたはカスタム(テストランナー)(https://github.com/junit-team/junit4/wiki/Test-runners)を実装する必要があると思います –