Best junit code snippet using org.junit.rules.TestWatcher.starting
Source:TestWatcherTest.java
...29 public static Object[][] parameters() {30 return new Object[][] {31 {32 FailingTest.class,33 "starting failed finished ",34 asList("starting failed", "test failed", "failed failed", "finished failed") },35 {36 InternalViolatedAssumptionTest.class,37 "starting deprecated skipped finished ",38 asList("starting failed", "don't run", "deprecated skipped failed", "finished failed") },39 {40 SuccessfulTest.class,41 "starting succeeded finished ",42 asList("starting failed", "succeeded failed", "finished failed") },43 {44 ViolatedAssumptionTest.class,45 "starting skipped finished ",46 asList("starting failed", "Test could not be skipped due to other failures", "skipped failed", "finished failed") }47 };48 }49 @Parameter(0)50 public Class<?> testClass;51 @Parameter(1)52 public String expectedCallbacks;53 @Parameter(2)54 public List<String> expectedFailures;55 private static TestRule selectedRule; //for injecting rule into test classes56 @Test57 public void correctCallbacksCalled() {58 StringBuilder log = new StringBuilder();59 selectedRule = new LoggingTestWatcher(log);60 JUnitCore.runClasses(testClass);61 assertEquals(expectedCallbacks, log.toString());62 }63 @Test64 public void resultHasAllFailuresThrownByCallbacks() {65 selectedRule = new ErroneousTestWatcher();66 PrintableResult result = testResult(testClass);67 assertThat(result, failureCountIs(expectedFailures.size()));68 for (String expectedFailure: expectedFailures) {69 assertThat(result, hasFailureContaining(expectedFailure));70 }71 }72 @Test73 public void testWatcherDoesNotModifyResult() {74 selectedRule = new NoOpRule();75 Result resultNoOpRule = JUnitCore.runClasses(testClass);76 selectedRule = new LoggingTestWatcher(new StringBuilder());77 Result resultTestWatcher = JUnitCore.runClasses(testClass);78 assertEquals(79 "was successful",80 resultNoOpRule.wasSuccessful(),81 resultTestWatcher.wasSuccessful());82 assertEquals(83 "failure count",84 resultNoOpRule.getFailureCount(),85 resultTestWatcher.getFailureCount());86 assertEquals(87 "ignore count",88 resultNoOpRule.getIgnoreCount(),89 resultTestWatcher.getIgnoreCount());90 assertEquals(91 "run count",92 resultNoOpRule.getRunCount(),93 resultTestWatcher.getRunCount());94 }95 private static class NoOpRule implements TestRule {96 public Statement apply(Statement base, Description description) {97 return base;98 }99 }100 private static class ErroneousTestWatcher extends TestWatcher {101 @Override102 protected void succeeded(Description description) {103 throw new RuntimeException("succeeded failed");104 }105 @Override106 protected void failed(Throwable e, Description description) {107 throw new RuntimeException("failed failed");108 }109 @Override110 protected void skipped(org.junit.AssumptionViolatedException e, Description description) {111 throw new RuntimeException("skipped failed");112 }113 @Override114 @SuppressWarnings("deprecation")115 protected void skipped(AssumptionViolatedException e, Description description) {116 throw new RuntimeException("deprecated skipped failed");117 }118 @Override119 protected void starting(Description description) {120 throw new RuntimeException("starting failed");121 }122 @Override123 protected void finished(Description description) {124 throw new RuntimeException("finished failed");125 }126 }127 public static class FailingTest {128 @Rule129 public TestRule rule = selectedRule;130 @Test131 public void test() {132 fail("test failed");133 }134 }135 public static class InternalViolatedAssumptionTest {136 @Rule137 public TestRule watcher = selectedRule;138 @SuppressWarnings("deprecation")139 @Test140 public void test() {141 throw new AssumptionViolatedException("don't run");142 }143 }144 public static class SuccessfulTest {145 @Rule146 public TestRule watcher = selectedRule;147 @Test148 public void test() {149 }150 }151 public static class ViolatedAssumptionTest {152 @Rule153 public TestRule watcher = selectedRule;154 @Test155 public void test() {156 assumeTrue(false);157 }158 }159 }160 public static class CallbackArguments {161 public static class Succeeded {162 private static Description catchedDescription;163 @Rule164 public final TestRule watcher = new TestWatcher() {165 @Override166 protected void succeeded(Description description) {167 catchedDescription = description;168 }169 };170 @Test171 public void test() {172 }173 }174 @Test175 public void succeeded() {176 JUnitCore.runClasses(Succeeded.class);177 assertEquals("test(org.junit.rules.TestWatcherTest$CallbackArguments$Succeeded)",178 Succeeded.catchedDescription.getDisplayName());179 }180 public static class Failed {181 private static Description catchedDescription;182 private static Throwable catchedThrowable;183 @Rule184 public final TestRule watcher = new TestWatcher() {185 @Override186 protected void failed(Throwable e, Description description) {187 catchedDescription = description;188 catchedThrowable = e;189 }190 };191 @Test192 public void test() {193 fail("test failed");194 }195 }196 @Test197 public void failed() {198 JUnitCore.runClasses(Failed.class);199 assertEquals("test failed", Failed.catchedThrowable.getMessage());200 assertEquals(AssertionError.class, Failed.catchedThrowable.getClass());201 assertEquals("test(org.junit.rules.TestWatcherTest$CallbackArguments$Failed)",202 Failed.catchedDescription.getDisplayName());203 }204 public static class Skipped {205 private static Description catchedDescription;206 private static org.junit.AssumptionViolatedException catchedException;207 @Rule208 public final TestRule watcher = new TestWatcher() {209 @Override210 protected void skipped(org.junit.AssumptionViolatedException e, Description description) {211 catchedDescription = description;212 catchedException = e;213 }214 };215 @Test216 public void test() {217 assumeTrue("test skipped", false);218 }219 }220 @Test221 public void skipped() {222 JUnitCore.runClasses(Skipped.class);223 assertEquals("test skipped", Skipped.catchedException.getMessage());224 assertEquals(org.junit.AssumptionViolatedException.class, Skipped.catchedException.getClass());225 assertEquals("test(org.junit.rules.TestWatcherTest$CallbackArguments$Skipped)",226 Skipped.catchedDescription.getDisplayName());227 }228 public static class DeprecatedSkipped {229 private static Description catchedDescription;230 private static AssumptionViolatedException catchedException;231 @Rule232 public final TestRule watcher = new TestWatcher() {233 @Override234 @SuppressWarnings("deprecation")235 protected void skipped(AssumptionViolatedException e, Description description) {236 catchedDescription = description;237 catchedException = e;238 }239 };240 @SuppressWarnings("deprecation")241 @Test242 public void test() {243 throw new AssumptionViolatedException("test skipped");244 }245 }246 @Test247 public void deprecatedSkipped() {248 JUnitCore.runClasses(DeprecatedSkipped.class);249 assertEquals("test skipped", DeprecatedSkipped.catchedException.getMessage());250 assertEquals(AssumptionViolatedException.class, DeprecatedSkipped.catchedException.getClass());251 assertEquals("test(org.junit.rules.TestWatcherTest$CallbackArguments$DeprecatedSkipped)",252 DeprecatedSkipped.catchedDescription.getDisplayName());253 }254 public static class Starting {255 private static Description catchedDescription;256 @Rule257 public final TestRule watcher = new TestWatcher() {258 @Override259 protected void starting(Description description) {260 catchedDescription = description;261 }262 };263 @Test264 public void test() {265 }266 }267 @Test268 public void starting() {269 JUnitCore.runClasses(Starting.class);270 assertEquals("test(org.junit.rules.TestWatcherTest$CallbackArguments$Starting)",271 Starting.catchedDescription.getDisplayName());272 }273 public static class Finished {274 private static Description catchedDescription;275 @Rule276 public final TestRule watcher = new TestWatcher() {277 @Override278 protected void finished(Description description) {279 catchedDescription = description;280 }281 };282 @Test283 public void test() {284 }285 }286 @Test287 public void finished() {288 JUnitCore.runClasses(Finished.class);289 assertEquals("test(org.junit.rules.TestWatcherTest$CallbackArguments$Finished)",290 Finished.catchedDescription.getDisplayName());291 }292 }293 //The following tests check the information in TestWatcher's Javadoc294 //regarding interplay with other rules.295 public static class InterplayWithOtherRules {296 private static StringBuilder log;297 public static class ExpectedExceptionTest {298 @Rule(order = Integer.MIN_VALUE)299 //the field name must be alphabetically lower than "thrown" in order300 //to make the test failing if order is not set301 public final TestRule a = new LoggingTestWatcher(log);302 @Rule303 public final ExpectedException thrown = none();304 @Test305 public void testWithExpectedException() {306 thrown.expect(RuntimeException.class);307 throw new RuntimeException("expected exception");308 }309 }310 @Test311 public void expectedExceptionIsSeenAsSuccessfulTest() {312 log = new StringBuilder();313 JUnitCore.runClasses(ExpectedExceptionTest.class);314 assertEquals("starting succeeded finished ", log.toString());315 }316 public static class ErrorCollectorTest {317 @Rule(order = Integer.MIN_VALUE)318 //the field name must be alphabetically lower than "collector" in319 //order to make the test failing if order is not set320 public final TestRule a = new LoggingTestWatcher(log);321 @Rule322 public final ErrorCollector collector = new ErrorCollector();323 @Test324 public void test() {325 collector.addError(new RuntimeException("expected exception"));326 }327 }328 @Test329 public void testIsSeenAsFailedBecauseOfCollectedError() {330 log = new StringBuilder();331 JUnitCore.runClasses(ErrorCollectorTest.class);332 assertEquals("starting failed finished ", log.toString());333 }334 }335}...
Source:ETexasTestWatcher.java
...33 protected void failed(Throwable e, Description d) {34 }35 /*36 * (non-Javadoc)37 * @see org.junit.rules.TestWatcher#starting(org.junit.runner.Description)38 * Overrides JUnit's TestWatcher starting() method; called when a test39 * starts.40 */41 @Override42 protected void starting(Description description) {43 logStartTime(description);44 }45 /*46 * (non-Javadoc)47 * @see org.junit.rules.TestWatcher#finished(org.junit.runner.Description)48 * Overrides JUnit's TestWatcher finished() method; called when a test49 * finishes.50 */51 @Override52 protected void finished(Description description) {53 logEndTime(description);54 }55 /**56 * Logs the start time of a test.57 *58 * @param description the Description of the test59 */60 public void logStartTime(Description description) {61 String testName = getTestName(description);62 loggedSleepTimeAtStart = BasicWebDriverManager.get().getCurrentLoggedTime();63 printElapsedTime(testName + " : " + description.getMethodName() + " starting");64 }65 /**66 * Logs the end time of a test.67 *68 * @param description the Description of the test69 */70 public void logEndTime(Description description) {71 String testName = getTestName(description);72 long elapsedSleepTime = BasicWebDriverManager.get().getCurrentLoggedTime() - loggedSleepTimeAtStart;73 String sleepTime = String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(elapsedSleepTime),74 TimeUnit.MILLISECONDS.toMinutes(elapsedSleepTime) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(elapsedSleepTime)),75 TimeUnit.MILLISECONDS.toSeconds(elapsedSleepTime) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(elapsedSleepTime)));76 System.out.println("Time slept during " + description.getMethodName() + ": " + sleepTime);77 printElapsedTime(testName + " : " + description.getMethodName() + " ending");...
Source:TestWatcher.java
...12 /* class org.junit.rules.TestWatcher.AnonymousClass1 */13 @Override // org.junit.runners.model.Statement14 public void evaluate() throws Throwable {15 List<Throwable> errors = new ArrayList<>();16 TestWatcher.this.startingQuietly(description, errors);17 try {18 base.evaluate();19 TestWatcher.this.succeededQuietly(description, errors);20 } catch (AssumptionViolatedException e) {21 errors.add(e);22 TestWatcher.this.skippedQuietly(e, description, errors);23 } catch (Throwable th) {24 TestWatcher.this.finishedQuietly(description, errors);25 throw th;26 }27 TestWatcher.this.finishedQuietly(description, errors);28 MultipleFailureException.assertEmpty(errors);29 }30 };31 }32 /* access modifiers changed from: private */33 public void succeededQuietly(Description description, List<Throwable> errors) {34 try {35 succeeded(description);36 } catch (Throwable e) {37 errors.add(e);38 }39 }40 /* access modifiers changed from: private */41 public void failedQuietly(Throwable e, Description description, List<Throwable> errors) {42 try {43 failed(e, description);44 } catch (Throwable e1) {45 errors.add(e1);46 }47 }48 /* access modifiers changed from: private */49 public void skippedQuietly(AssumptionViolatedException e, Description description, List<Throwable> errors) {50 try {51 if (e instanceof org.junit.AssumptionViolatedException) {52 skipped((org.junit.AssumptionViolatedException) e, description);53 } else {54 skipped(e, description);55 }56 } catch (Throwable e1) {57 errors.add(e1);58 }59 }60 /* access modifiers changed from: private */61 public void startingQuietly(Description description, List<Throwable> errors) {62 try {63 starting(description);64 } catch (Throwable e) {65 errors.add(e);66 }67 }68 /* access modifiers changed from: private */69 public void finishedQuietly(Description description, List<Throwable> errors) {70 try {71 finished(description);72 } catch (Throwable e) {73 errors.add(e);74 }75 }76 /* access modifiers changed from: protected */77 public void succeeded(Description description) {78 }79 /* access modifiers changed from: protected */80 public void failed(Throwable e, Description description) {81 }82 /* JADX DEBUG: Failed to find minimal casts for resolve overloaded methods, cast all args instead83 method: org.junit.rules.TestWatcher.skipped(org.junit.internal.AssumptionViolatedException, org.junit.runner.Description):void84 arg types: [org.junit.AssumptionViolatedException, org.junit.runner.Description]85 candidates:86 org.junit.rules.TestWatcher.skipped(org.junit.AssumptionViolatedException, org.junit.runner.Description):void87 org.junit.rules.TestWatcher.skipped(org.junit.internal.AssumptionViolatedException, org.junit.runner.Description):void */88 /* access modifiers changed from: protected */89 public void skipped(org.junit.AssumptionViolatedException e, Description description) {90 skipped((AssumptionViolatedException) e, description);91 }92 /* access modifiers changed from: protected */93 @Deprecated94 public void skipped(AssumptionViolatedException e, Description description) {95 }96 /* access modifiers changed from: protected */97 public void starting(Description description) {98 }99 /* access modifiers changed from: protected */100 public void finished(Description description) {101 }102}...
Source:Stopwatch.java
...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 }...
Source:TestWatcherAndLogger.java
...25final class TestWatcherAndLogger extends TestWatcher {26 /*27 * (non-Javadoc)28 * 29 * @see org.junit.rules.TestWatcher#starting(org.junit.runner.Description)30 */31 protected void starting(Description description) {32 System.out.println("====Starting test: " + description.getMethodName());33 }34 /*35 * (non-Javadoc)36 * 37 * @see org.junit.rules.TestWatcher#succeeded(org.junit.runner.Description)38 */39 protected void succeeded(Description description) {40 System.out.println("[Succeeded] test: " + description.getMethodName());41 }42 /*43 * (non-Javadoc)44 * 45 * @see org.junit.rules.TestWatcher#failed(java.lang.Throwable,...
Source:CommonUnitTest.java
...29 private static Logger logger = LoggerFactory.getLogger(CommonUnitTest.class);30 /** The test stopwatch. */31 private final Stopwatch testStopwatch = Stopwatch.createUnstarted();32 /**33 * @see org.junit.rules.TestWatcher#starting(org.junit.runner.Description)34 */35 protected void starting(Description description) {36 logger.info("===== BEGIN {} [{}] =====", description.getMethodName(),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 }...
Source:IllegalBrowserTest.java
...34 @Rule35 public TestWatcher watchman = new TestWatcher() {36 /*37 * (é Javadoc)38 * @see org.junit.rules.TestWatcher#starting(org.junit.runner.Description)39 */40 @Override41 protected void starting(Description description) {42 expectedException.expect(WebDriverException.class);43 }44 };45 @Test46 public void testWhenRightCapability() {47 Assert.fail("ãã¹ããå®è¡ããã¾ãã");48 }49}...
Source:AbstractLoggingJUnitTest.java
...14 // http://stackoverflow.com/questions/9942825/how-to-tell-when-junit-finishes-by-just-using-a-testwatcher15 @Rule16 final public TestWatcher watchman = new TestWatcher() {17 @Override18 protected void starting(Description d) {19 logger.trace(" Test [{}] starting ", d.getMethodName());20 }21 @Override22 protected void succeeded(Description d) {23 logger.info(" Test [{}] succeeded ", d.getMethodName());24 }25 @Override26 protected void failed(Throwable e, Description d) {27 logger.warn(" Test [{}] failed with exception [{}]", d.getMethodName(), e.getMessage());28 }29 @Override30 protected void finished(Description d) {31 logger.trace(" Test [{}] finished ", d.getMethodName());32 }33 };34 @ClassRule35 public static TestRule classWatchman = new TestWatcher() {36 @Override37 protected void starting(Description d) {38 logger.info("TestSuite [{}] started", d.getClassName());39 }40 @Override41 protected void finished(Description d) {42 logger.info("TestSuite [{}] finished", d.getClassName());43 }44 };45}...
starting
Using AI Code Generation
1package com.javacodegeeks.junit;2import org.junit.Rule;3import org.junit.Test;4import org.junit.rules.TestWatcher;5import org.junit.runner.Description;6public class TestWatcherExample {7 public TestWatcher watchman = new TestWatcher() {8 protected void starting(Description description) {9 System.out.println("Starting: " + description.getMethodName());10 }11 protected void finished(Description description) {12 System.out.println("Finished: " + description.getMethodName());13 }14 };15 public void testOne() {16 System.out.println("Test One");17 }18 public void testTwo() {19 System.out.println("Test Two");20 }21}
starting
Using AI Code Generation
1public TestWatcher watcher = new TestWatcher() {2 protected void starting(Description description) {3 System.out.println("Starting test: " + description.getMethodName());4 }5 protected void succeeded(Description description) {6 System.out.println("Finished test: " + description.getMethodName());7 }8 protected void failed(Throwable e, Description description) {9 System.out.println("Failed test: " + description.getMethodName());10 }11};12public void test1() {13 int i = 1 / 0;14}15public void test2() {16 String s = null;17 s.length();18}
starting
Using AI Code Generation
1import org.junit.rules.TestWatcher;2import org.junit.runner.Description;3public class TestWatcherExample extends TestWatcher {4 protected void starting(Description description) {5 System.out.println("Starting test: " + description.getMethodName());6 }7 protected void finished(Description description) {8 System.out.println("Finished test: " + description.getMethodName());9 }10}11import org.junit.rules.TestWatcher;12import org.junit.runner.Description;13public class TestWatcherExample extends TestWatcher {14 protected void failed(Throwable e, Description description) {15 System.out.println("Failed test: " + description.getMethodName());16 }17}18import org.junit.rules.TestWatcher;19import org.junit.runner.Description;20public class TestWatcherExample extends TestWatcher {21 protected void succeeded(Description description) {22 System.out.println("Succeeded test: " + description.getMethodName());23 }24}25import org.junit.rules.TestWatcher;26import org.junit.runner.Description;27public class TestWatcherExample extends TestWatcher {28 protected void skipped(AssumptionViolatedException e, Description description) {29 System.out.println("Skipped test: " + description.getMethodName());30 }31}32import org.junit.rules.TestWatcher;33import org.junit.runner.Description;34public class TestWatcherExample extends TestWatcher {35 protected void finished(Description description) {36 System.out.println("Finished test: " + description.getMethodName());37 }38}39import org.junit.rules.TestWatcher;40import org.junit.runner.Description;41public class TestWatcherExample extends TestWatcher {42 protected void failed(Throwable e, Description description) {43 System.out.println("Failed test: " + description.getMethodName());44 }45}46import org.junit.rules.TestWatcher;47import org.junit.runner.Description;48public class TestWatcherExample extends TestWatcher {49 protected void succeeded(Description description) {50 System.out.println("Succeeded test: " + description.getMethodName());51 }52}
starting
Using AI Code Generation
1package com.mycompany.app;2import org.junit.Rule;3import org.junit.Test;4import org.junit.rules.TestWatcher;5import org.junit.runner.Description;6{7 public TestWatcher watchman = new TestWatcher() {8 protected void starting(Description description) {9 System.out.println("Starting test: " + description.getMethodName());10 }11 };12 public void test1() {13 System.out.println("Test 1");14 }15 public void test2() {16 System.out.println("Test 2");17 }18}19JUnit Rule – TestWatcher – finished() Method20package com.mycompany.app;21import org.junit.Rule;22import org.junit.Test;23import org.junit.rules.TestWatcher;24import org.junit.runner.Description;25{26 public TestWatcher watchman = new TestWatcher() {27 protected void finished(Description description) {28 System.out.println("Finished test: " + description.getMethodName());29 }30 };31 public void test1() {32 System.out.println("Test 1");33 }34 public void test2() {35 System.out.println("Test 2");36 }37}38JUnit Rule – TestWatcher – succeeded() Method39package com.mycompany.app;40import org.junit.Rule;41import org.junit.Test;42import org.junit.rules.TestWatcher;43import org.junit.runner.Description;44{45 public TestWatcher watchman = new TestWatcher() {46 protected void succeeded(Description description) {47 System.out.println("Succeeded test: " + description.getMethodName());48 }49 };50 public void test1() {51 System.out.println("Test 1");52 }53 public void test2() {54 System.out.println("Test 2");55 }
starting
Using AI Code Generation
1starting(Description description)2finished(Description description)3public Statement apply(Statement base, Description description) {4 return new Statement() {5 public void evaluate() throws Throwable {6 starting(description);7 try {8 base.evaluate();9 } finally {10 finished(description);11 }12 }13 };14}15starting(Description description)16protected void starting(Description description) {17}18finished(Description description)19protected void finished(Description description) {20}21public class TestWatcherExample {22 public TestWatcher testWatcher = new TestWatcher() {23 protected void starting(Description description) {24 System.out.println("Starting test: " + description.getMethodName());25 }26 protected void finished(Description description) {27 System.out.println("Finished test: " + description.getMethodName());
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!!