Best junit code snippet using org.junit.rules.Stopwatch.finished
Source:StopwatchTest.java
...23 */24public class StopwatchTest {25 private static enum TestStatus { SUCCEEDED, FAILED, SKIPPED }26 private static Record record;27 private static Record finishedRecord;28 private static long fakeTimeNanos = 1234;29 private static class Record {30 final long duration;31 final String name;32 final TestStatus status;33 Record() {34 this(0, null, null);35 }36 Record(long duration, Description description) {37 this(duration, null, description);38 }39 Record(long duration, TestStatus status, Description description) {40 this.duration = duration;41 this.status = status;42 this.name = description == null ? null : description.getMethodName();43 }44 }45 public static abstract class AbstractStopwatchTest {46 /**47 * Fake implementation of {@link Stopwatch.Clock} that increments the time48 * every time it is asked.49 */50 private final Stopwatch.Clock fakeClock = new Stopwatch.Clock() {51 @Override52 public long nanoTime() {53 return fakeTimeNanos++;54 }55 };56 protected final Stopwatch stopwatch = new Stopwatch(fakeClock) {57 @Override58 protected void succeeded(long nanos, Description description) {59 StopwatchTest.record = new Record(nanos, TestStatus.SUCCEEDED, description);60 simulateTimePassing(1);61 }62 @Override63 protected void failed(long nanos, Throwable e, Description description) {64 StopwatchTest.record = new Record(nanos, TestStatus.FAILED, description);65 simulateTimePassing(1);66 }67 @Override68 protected void skipped(long nanos, AssumptionViolatedException e, Description description) {69 StopwatchTest.record = new Record(nanos, TestStatus.SKIPPED, description);70 simulateTimePassing(1);71 }72 @Override73 protected void finished(long nanos, Description description) {74 StopwatchTest.finishedRecord = new Record(nanos, description);75 }76 };77 private final TestWatcher watcher = new TestWatcher() {78 @Override79 protected void finished(Description description) {80 afterStopwatchRule();81 }82 };83 @Rule84 public final RuleChain chain = RuleChain85 .outerRule(watcher)86 .around(stopwatch);87 protected void afterStopwatchRule() {88 }89 }90 public static class SuccessfulTest extends AbstractStopwatchTest {91 @Test92 public void successfulTest() {93 }94 }95 public static class FailedTest extends AbstractStopwatchTest {96 @Test97 public void failedTest() {98 fail();99 }100 }101 public static class SkippedTest extends AbstractStopwatchTest {102 @Test103 public void skippedTest() {104 assumeTrue(false);105 }106 }107 public static class DurationDuringTestTest extends AbstractStopwatchTest {108 @Test109 public void duration() {110 simulateTimePassing(300L);111 assertEquals(300L, stopwatch.runtime(MILLISECONDS));112 simulateTimePassing(500L);113 assertEquals(800L, stopwatch.runtime(MILLISECONDS));114 }115 }116 public static class DurationAfterTestTest extends AbstractStopwatchTest {117 @Test118 public void duration() {119 simulateTimePassing(300L);120 assertEquals(300L, stopwatch.runtime(MILLISECONDS));121 }122 @Override123 protected void afterStopwatchRule() {124 assertEquals(300L, stopwatch.runtime(MILLISECONDS));125 simulateTimePassing(500L);126 assertEquals(300L, stopwatch.runtime(MILLISECONDS));127 }128 }129 @Before130 public void init() {131 record = new Record();132 finishedRecord = new Record();133 simulateTimePassing(1L);134 }135 private static Result runTest(Class<?> test) {136 simulateTimePassing(1L);137 JUnitCore junitCore = new JUnitCore();138 return junitCore.run(Request.aClass(test).getRunner());139 }140 private static void simulateTimePassing(long millis) {141 fakeTimeNanos += TimeUnit.MILLISECONDS.toNanos(millis);142 }143 @Test144 public void succeeded() {145 Result result = runTest(SuccessfulTest.class);146 assertEquals(0, result.getFailureCount());147 assertThat(record.name, is("successfulTest"));148 assertThat(record.name, is(finishedRecord.name));149 assertThat(record.status, is(TestStatus.SUCCEEDED));150 assertTrue("timeSpent > 0", record.duration > 0);151 assertThat(record.duration, is(finishedRecord.duration));152 }153 @Test154 public void failed() {155 Result result = runTest(FailedTest.class);156 assertEquals(1, result.getFailureCount());157 assertThat(record.name, is("failedTest"));158 assertThat(record.name, is(finishedRecord.name));159 assertThat(record.status, is(TestStatus.FAILED));160 assertTrue("timeSpent > 0", record.duration > 0);161 assertThat(record.duration, is(finishedRecord.duration));162 }163 @Test164 public void skipped() {165 Result result = runTest(SkippedTest.class);166 assertEquals(0, result.getFailureCount());167 assertThat(record.name, is("skippedTest"));168 assertThat(record.name, is(finishedRecord.name));169 assertThat(record.status, is(TestStatus.SKIPPED));170 assertTrue("timeSpent > 0", record.duration > 0);171 assertThat(record.duration, is(finishedRecord.duration));172 }173 @Test174 public void runtimeDuringTestShouldReturnTimeSinceStart() {175 Result result = runTest(DurationDuringTestTest.class);176 assertTrue(result.wasSuccessful());177 }178 @Test179 public void runtimeAfterTestShouldReturnRunDuration() {180 Result result = runTest(DurationAfterTestTest.class);181 assertTrue(result.wasSuccessful());182 }183}...
Source:CpuTimeLimit.java
...111 TestThread thread = new TestThread(statement);112 thread.start();113 114 CpuStopwatch stopwatch = createStopwatch(thread.getId());115 while (!thread.finished && stopwatch.getElapsedTime() < timeLimit) {116 thread.join(TIMEOUT_CHECK_INTERVAL);117 }118 119 Throwable exception = null;120 if (thread.finished) {121 exception = thread.exceptionFromTest;122 } else {123 exception = new TimeLimitException("Time limit (" + timeLimitString() + ") exceeded");124 exception.setStackTrace(thread.getStackTrace());125 thread.interrupt();126 }127 128 if (exception != null) {129 throw exception;130 }131 }132 };133 }134 135 private String timeLimitString() {136 return new DecimalFormat("#.###s").format(timeLimit);137 }138 139 private CpuStopwatch createStopwatch(long threadId) {140 return new CpuStopwatch(stopwatchMode, threadId);141 }142 143 private static class TestThread extends Thread {144 private final Statement statement;145 146 public boolean finished = false;147 public Throwable exceptionFromTest = null;148 public TestThread(Statement statement) {149 super("TimeLimit.TestThread");150 this.statement = statement;151 }152 @Override153 public void run() {154 try {155 statement.evaluate();156 } catch (InterruptedException e) {157 // Most likely sent by us after a timeout158 } catch (Throwable e) {159 exceptionFromTest = e;160 } finally {161 finished = true;162 }163 }164 }165 166}...
Source:JunitRuleTest.java
...89 @Override90 public void evaluate() throws Throwable {91 Stopwatch watch = Stopwatch.createStarted();92 base.evaluate();93 log.info("finished {}, duration: {} ms.", flag, watch.elapsed(TimeUnit.MILLISECONDS));94 }95 };96 }97 }98 @Slf4j99 private static class LoggingRule implements TestRule {100 private int priority;101 public LoggingRule(int priority) {102 this.priority = priority;103 }104 @Override105 public Statement apply(Statement base, Description description) {106 return new Statement() {107 @Override108 public void evaluate() throws Throwable {109 log.info("starting LoggingRule-{}.", priority);110 base.evaluate();111 log.info("finished LoggingRule-{}", priority);112 }113 };114 }115 }116}...
Source:Stopwatch.java
...25 /* access modifiers changed from: protected */26 public void skipped(long nanos, AssumptionViolatedException e, Description description) {27 }28 /* access modifiers changed from: protected */29 public void finished(long nanos, Description description) {30 }31 /* access modifiers changed from: private */32 /* access modifiers changed from: public */33 private long getNanos() {34 if (this.startNanos != 0) {35 long currentEndNanos = this.endNanos;36 if (currentEndNanos == 0) {37 currentEndNanos = this.clock.nanoTime();38 }39 return currentEndNanos - this.startNanos;40 }41 throw new IllegalStateException("Test has not started");42 }43 /* access modifiers changed from: private */44 /* access modifiers changed from: public */45 private void starting() {46 this.startNanos = this.clock.nanoTime();47 this.endNanos = 0;48 }49 /* access modifiers changed from: private */50 /* access modifiers changed from: public */51 private void stopping() {52 this.endNanos = this.clock.nanoTime();53 }54 @Override // org.junit.rules.TestRule55 public final Statement apply(Statement base, Description description) {56 return new InternalWatcher().apply(base, description);57 }58 private class InternalWatcher extends TestWatcher {59 private InternalWatcher() {60 }61 /* access modifiers changed from: protected */62 @Override // org.junit.rules.TestWatcher63 public void starting(Description description) {64 Stopwatch.this.starting();65 }66 /* access modifiers changed from: protected */67 @Override // org.junit.rules.TestWatcher68 public void finished(Description description) {69 Stopwatch stopwatch = Stopwatch.this;70 stopwatch.finished(stopwatch.getNanos(), description);71 }72 /* access modifiers changed from: protected */73 @Override // org.junit.rules.TestWatcher74 public void succeeded(Description description) {75 Stopwatch.this.stopping();76 Stopwatch stopwatch = Stopwatch.this;77 stopwatch.succeeded(stopwatch.getNanos(), description);78 }79 /* access modifiers changed from: protected */80 @Override // org.junit.rules.TestWatcher81 public void failed(Throwable e, Description description) {82 Stopwatch.this.stopping();83 Stopwatch stopwatch = Stopwatch.this;84 stopwatch.failed(stopwatch.getNanos(), e, description);...
Source:CommonUnitTest.java
...37 description.getClassName());38 testStopwatch.start();39 }40 /**41 * @see org.junit.rules.TestWatcher#finished(org.junit.runner.Description)42 */43 protected void finished(Description description) {44 testStopwatch.stop();45 long elapsed = testStopwatch.elapsed(TimeUnit.MILLISECONDS);46 logger.info("Elapsed time: {} ms", elapsed);47 logger.info("===== END {} [{}] =====", description.getMethodName(),48 description.getClassName());49 }50}...
Source:TimingRules.java
...10 private static StringBuilder results = new StringBuilder();11 // http://stackoverflow.com/questions/14892125/what-is-the-best-practice-to-determine-the-execution-time-of-the-bussiness-relev12 public static final Stopwatch STOPWATCH = new Stopwatch() {13 @Override14 protected void finished(long nanos, Description description) {15 String result = String.format("%-95s %7d", description.getDisplayName(), TimeUnit.NANOSECONDS.toMillis(nanos));16 results.append(result).append('\n');17 log.info(result + " ms\n");18 }19 };20 public static final ExternalResource SUMMARY = new ExternalResource() {21 @Override22 protected void before() throws Throwable {23 results.setLength(0);24 }25 @Override26 protected void after() {27 log.info("\n" +28 "\n-------------------------------------------------------------------------------------------------------" +...
Source:PracStopwatch.java
...18 protected void starting(Description description) {19 System.out.println("starting:" + description);20 }21 @Override22 protected void finished(Description description) {23 System.out.println("finished:" + description);24 }25 };26 @Rule27 public Stopwatch watch = new Stopwatch() {28 @Override29 protected void finished(long nanos, Description description) {30 System.out.printf("method %s finished: %d nanos. %n", description.getMethodName(), nanos);31 }32 };33 @Test34 public void test1() throws Exception {35 }36 @Test37 public void test2() throws Exception {38 }39 @Test40 public void test3() throws Exception {41 }42}...
finished
Using AI Code Generation
1public class StopwatchTest {2 public Stopwatch stopwatch = new Stopwatch() {3 protected void finished(long nanos, Description description) {4 System.out.println(String.format("Test %s finished in %d ms", description.getMethodName(), nanos / 1000000));5 }6 };7 public void test1() throws InterruptedException {8 Thread.sleep(1000);9 }10 public void test2() throws InterruptedException {11 Thread.sleep(2000);12 }13}
finished
Using AI Code Generation
1import static org.junit.Assert.*;2import org.junit.Test;3import org.junit.Rule;4import org.junit.rules.Stopwatch;5import java.util.concurrent.TimeUnit;6public class StopwatchTest {7 public Stopwatch stopwatch = new Stopwatch() {8 protected void finished(long nanos, Description description) {9 System.out.println(description.getDisplayName() + " took " + nanos + " nanoseconds");10 }11 };12 public void test1() throws Exception {13 Thread.sleep(1000);14 }15 public void test2() throws Exception {16 Thread.sleep(2000);17 }18}
finished
Using AI Code Generation
1import org.junit.Rule;2import org.junit.Test;3import org.junit.rules.Stopwatch;4import org.junit.runner.Description;5import java.util.concurrent.TimeUnit;6public class StopwatchTest {7 public Stopwatch stopwatch = new Stopwatch() {8 protected void finished(long nanos, Description description) {9 System.out.println("Finished test: " + description.getMethodName() + " in " + nanos + " nanoseconds");10 }11 };12 public void test1() throws InterruptedException {13 Thread.sleep(1000);14 }15 public void test2() throws InterruptedException {16 Thread.sleep(2000);17 }18}
finished
Using AI Code Generation
1public Stopwatch stopwatch = new Stopwatch() {2 protected void finished(long nanos, Description description) {3 System.out.println(String.format("Finished test %s in %s", description.getMethodName(), nanos));4 }5};6public Stopwatch stopwatch = new Stopwatch() {7 protected void finished(long nanos, Description description) {8 System.out.println(String.format("Finished test %s in %s", description.getMethodName(), nanos));9 }10 protected void succeeded(long nanos, Description description) {11 System.out.println(String.format("Succeeded test %s in %s", description.getMethodName(), nanos));12 }13 protected void failed(long nanos, Throwable e, Description description) {14 System.out.println(String.format("Failed test %s in %s", description.getMethodName(), nanos));15 }16};17public Stopwatch stopwatch = new Stopwatch() {18 protected void finished(long nanos, Description description) {19 System.out.println(String.format("Finished test %s in %s", description.getMethodName(), nanos));20 }21 protected void succeeded(long nanos, Description description) {22 System.out.println(String.format("Succeeded test %s in %s", description.getMethodName(), nanos));23 }24 protected void failed(long nanos, Throwable e, Description description) {25 System.out.println(String.format("Failed test %s in %s", description.getMethodName(), nanos));26 }27};28public void test1() throws InterruptedException {29 Thread.sleep(1000);30}31public void test2() throws InterruptedException {32 Thread.sleep(2000);33}34public void test3() throws InterruptedException {35 Thread.sleep(3000);36}37public void test4() throws InterruptedException {38 Thread.sleep(4000);39}40public void test5() throws InterruptedException {41 Thread.sleep(5000);42}43public void test6() throws InterruptedException {44 Thread.sleep(6000);45}46public void test7() throws InterruptedException {47 Thread.sleep(7000);48}49public void test8() throws InterruptedException {50 Thread.sleep(8000);51}52public void test9() throws InterruptedException {53 Thread.sleep(9000
finished
Using AI Code Generation
1org.junit.rules.Stopwatch stopwatch = new org.junit.rules.Stopwatch();2public org.junit.rules.TestRule stopwatch;3org.junit.rules.Stopwatch stopwatch = new org.junit.rules.Stopwatch();4public org.junit.rules.TestRule stopwatch;5org.junit.rules.Stopwatch stopwatch = new org.junit.rules.Stopwatch();6public org.junit.rules.TestRule stopwatch;7org.junit.rules.Stopwatch stopwatch = new org.junit.rules.Stopwatch();8public org.junit.rules.TestRule stopwatch;9org.junit.rules.Stopwatch stopwatch = new org.junit.rules.Stopwatch();10public org.junit.rules.TestRule stopwatch;11org.junit.rules.Stopwatch stopwatch = new org.junit.rules.Stopwatch();12public org.junit.rules.TestRule stopwatch;13org.junit.rules.Stopwatch stopwatch = new org.junit.rules.Stopwatch();14public org.junit.rules.TestRule stopwatch;15org.junit.rules.Stopwatch stopwatch = new org.junit.rules.Stopwatch();16public org.junit.rules.TestRule stopwatch;17org.junit.rules.Stopwatch stopwatch = new org.junit.rules.Stopwatch();18public org.junit.rules.TestRule stopwatch;19org.junit.rules.Stopwatch stopwatch = new org.junit.rules.Stopwatch();20public org.junit.rules.TestRule stopwatch;
finished
Using AI Code Generation
1import org.junit.rules.Stopwatch;2import org.junit.Rule;3import org.junit.Test;4import java.util.concurrent.TimeUnit;5public class TestStopwatchRule {6 public Stopwatch stopwatch = new Stopwatch() {7 protected void finished(long nanos, Description description) {8 System.out.println(description.getMethodName() + " took " + nanos + " nanoseconds");9 }10 };11 public void test1() throws InterruptedException {12 TimeUnit.SECONDS.sleep(2);13 }14 public void test2() throws InterruptedException {15 TimeUnit.SECONDS.sleep(1);16 }17}
finished
Using AI Code Generation
1public class StopwatchRule extends TestWatcher {2 private Stopwatch stopwatch = new Stopwatch();3 protected void finished(Description description) {4 System.out.println(description.getMethodName() + " took " + stopwatch.elapsedTime() + " seconds");5 }6 protected void starting(Description description) {7 stopwatch.start();8 }9}10public class StopwatchTest {11 public StopwatchRule stopwatchRule = new StopwatchRule();12 public void test() throws InterruptedException {13 Thread.sleep(1000);14 }15}16public class TimeoutTest {17 public Timeout timeout = new Timeout(1000);18 public void test() throws InterruptedException {19 Thread.sleep(2000);20 }21}22public class ErrorCollectorTest {23 public ErrorCollector collector = new ErrorCollector();24 public void test() {25 collector.addError(new Throwable("Error 1"));26 collector.addError(new Throwable("Error 2"));27 }28}
LambdaTest also has a detailed JUnit tutorial explaining its features, importance, advanced use cases, best practices, and more to help you get started with running your automation testing scripts.
Here are the detailed JUnit testing chapters to help you get started:
You can also check out our JUnit certification if you wish to take your career in Selenium automation testing with JUnit to the next level.
Get 100 minutes of automation test minutes FREE!!