Source:HttpReportRunner.java
...8import org.junit.runner.Description;9import org.junit.runner.Result;10import org.junit.runner.notification.Failure;11import org.junit.runner.notification.RunListener;12import org.junit.runner.notification.RunNotifier;13import org.junit.runner.notification.StoppedByUserException;14import org.junit.runners.BlockJUnit4ClassRunner;15import org.junit.runners.model.InitializationError;16public class HttpReportRunner extends BlockJUnit4ClassRunner17{18 public static HttpMethod lastMethod;19 public static String lastURL;20 public HttpReportRunner(Class<?> klass) throws InitializationError21 {22 super(klass);23 }24 @Override25 public void run(RunNotifier notifier)26 {27 // TODO Auto-generated method stub28 super.run(new RunNotifierWrapper(notifier));29 }30 static class RunNotifierWrapper extends RunNotifier31 {32 RunNotifier delegate;33 public RunNotifierWrapper(RunNotifier delegate)34 {35 this.delegate = delegate;36 }37 /**38 * @param failure39 * @see org.junit.runner.notification.RunNotifier#fireTestFailure(org.junit.runner.notification.Failure)40 */41 public void fireTestFailure(Failure failure)42 {43 if (lastURL != null)44 {45 AssertionError error = new AssertionError(failure.getException().getMessage() + "\n" + buildMethodReport());46 error.initCause(failure.getException());47 failure = new Failure(failure.getDescription(), error);48 }49 delegate.fireTestFailure(failure);50 }51 private String buildMethodReport()52 {53 StringBuilder sb = new StringBuilder();54 sb.append("Last HTTP call: ");55 String methodName = lastMethod.getClass().getSimpleName();56 methodName = methodName.substring(0, methodName.indexOf("Method")).toUpperCase();57 sb.append(methodName);58 Header[] ctHeaders = lastMethod.getRequestHeaders("Content-type");59 if ((ctHeaders != null) && (ctHeaders.length >= 1))60 {61 sb.append(" (").append(ctHeaders[0].getValue()).append(")");62 }63 sb.append(" ").append(lastURL);64 if (lastMethod instanceof EntityEnclosingMethod)65 {66 try67 {68 EntityEnclosingMethod eem = (EntityEnclosingMethod) lastMethod;69 ByteArrayOutputStream bos = new ByteArrayOutputStream();70 RequestEntity re = eem.getRequestEntity();71 if (re != null)72 {73 re.writeRequest(bos);74 sb.append("\nWith body:").append(bos.toString());75 }76 }77 catch (IOException e)78 {79 throw new RuntimeException("Failed to write out the last http method request body");80 }81 }82 return sb.toString();83 }84 /** ----------------------------------------------------85 * PURE DELEGATE METHODS86 * ----------------------------------------------------87 */88 /**89 * @param listener90 * @see org.junit.runner.notification.RunNotifier#addFirstListener(org.junit.runner.notification.RunListener)91 */92 public void addFirstListener(RunListener listener)93 {94 delegate.addFirstListener(listener);95 }96 /**97 * @param listener98 * @see org.junit.runner.notification.RunNotifier#addListener(org.junit.runner.notification.RunListener)99 */100 public void addListener(RunListener listener)101 {102 delegate.addListener(listener);103 }104 /**105 * @param obj106 * @return107 * @see java.lang.Object#equals(java.lang.Object)108 */109 public boolean equals(Object obj)110 {111 return delegate.equals(obj);112 }113 /**114 * @param failure115 * @see org.junit.runner.notification.RunNotifier#fireTestAssumptionFailed(org.junit.runner.notification.Failure)116 */117 public void fireTestAssumptionFailed(Failure failure)118 {119 delegate.fireTestAssumptionFailed(failure);120 }121 /**122 * @param description123 * @see org.junit.runner.notification.RunNotifier#fireTestFinished(org.junit.runner.Description)124 */125 public void fireTestFinished(Description description)126 {127 HttpReportRunner.lastMethod = null;128 HttpReportRunner.lastURL = null;129 delegate.fireTestFinished(description);130 }131 /**132 * @param description133 * @see org.junit.runner.notification.RunNotifier#fireTestIgnored(org.junit.runner.Description)134 */135 public void fireTestIgnored(Description description)136 {137 delegate.fireTestIgnored(description);138 }139 /**140 * @param result141 * @see org.junit.runner.notification.RunNotifier#fireTestRunFinished(org.junit.runner.Result)142 */143 public void fireTestRunFinished(Result result)144 {145 delegate.fireTestRunFinished(result);146 }147 /**148 * @param description149 * @see org.junit.runner.notification.RunNotifier#fireTestRunStarted(org.junit.runner.Description)150 */151 public void fireTestRunStarted(Description description)152 {153 delegate.fireTestRunStarted(description);154 }155 /**156 * @param description157 * @throws StoppedByUserException158 * @see org.junit.runner.notification.RunNotifier#fireTestStarted(org.junit.runner.Description)159 */160 public void fireTestStarted(Description description) throws StoppedByUserException161 {162 delegate.fireTestStarted(description);163 }164 /**165 * @return166 * @see java.lang.Object#hashCode()167 */168 public int hashCode()169 {170 return delegate.hashCode();171 }172 /**173 *174 * @see org.junit.runner.notification.RunNotifier#pleaseStop()175 */176 public void pleaseStop()177 {178 delegate.pleaseStop();179 }180 /**181 * @param listener182 * @see org.junit.runner.notification.RunNotifier#removeListener(org.junit.runner.notification.RunListener)183 */184 public void removeListener(RunListener listener)185 {186 delegate.removeListener(listener);187 }188 /**189 * @return190 * @see java.lang.Object#toString()191 */192 public String toString()193 {194 return delegate.toString();195 }196 }...
Source:RunNotifier.java
...5import java.util.concurrent.CopyOnWriteArrayList;6import org.junit.runner.Description;7import org.junit.runner.Result;8import org.junit.runner.notification.RunListener;9public class RunNotifier {10 private final List<RunListener> listeners = new CopyOnWriteArrayList();11 private volatile boolean pleaseStop = false;12 public void addListener(RunListener listener) {13 if (listener != null) {14 this.listeners.add(wrapIfNotThreadSafe(listener));15 return;16 }17 throw new NullPointerException("Cannot add a null listener");18 }19 public void removeListener(RunListener listener) {20 if (listener != null) {21 this.listeners.remove(wrapIfNotThreadSafe(listener));22 return;23 }24 throw new NullPointerException("Cannot remove a null listener");25 }26 /* access modifiers changed from: package-private */27 public RunListener wrapIfNotThreadSafe(RunListener listener) {28 if (listener.getClass().isAnnotationPresent(RunListener.ThreadSafe.class)) {29 return listener;30 }31 return new SynchronizedRunListener(listener, this);32 }33 private abstract class SafeNotifier {34 private final List<RunListener> currentListeners;35 /* access modifiers changed from: protected */36 public abstract void notifyListener(RunListener runListener) throws Exception;37 SafeNotifier(RunNotifier runNotifier) {38 this(runNotifier.listeners);39 }40 SafeNotifier(List<RunListener> currentListeners2) {41 this.currentListeners = currentListeners2;42 }43 /* access modifiers changed from: package-private */44 public void run() {45 int capacity = this.currentListeners.size();46 ArrayList<RunListener> safeListeners = new ArrayList<>(capacity);47 ArrayList<Failure> failures = new ArrayList<>(capacity);48 for (RunListener listener : this.currentListeners) {49 try {50 notifyListener(listener);51 safeListeners.add(listener);52 } catch (Exception e) {53 failures.add(new Failure(Description.TEST_MECHANISM, e));54 }55 }56 RunNotifier.this.fireTestFailures(safeListeners, failures);57 }58 }59 public void fireTestRunStarted(final Description description) {60 new SafeNotifier() {61 /* class org.junit.runner.notification.RunNotifier.AnonymousClass1 */62 /* access modifiers changed from: protected */63 @Override // org.junit.runner.notification.RunNotifier.SafeNotifier64 public void notifyListener(RunListener each) throws Exception {65 each.testRunStarted(description);66 }67 }.run();68 }69 public void fireTestRunFinished(final Result result) {70 new SafeNotifier() {71 /* class org.junit.runner.notification.RunNotifier.AnonymousClass2 */72 /* access modifiers changed from: protected */73 @Override // org.junit.runner.notification.RunNotifier.SafeNotifier74 public void notifyListener(RunListener each) throws Exception {75 each.testRunFinished(result);76 }77 }.run();78 }79 public void fireTestStarted(final Description description) throws StoppedByUserException {80 if (!this.pleaseStop) {81 new SafeNotifier() {82 /* class org.junit.runner.notification.RunNotifier.AnonymousClass3 */83 /* access modifiers changed from: protected */84 @Override // org.junit.runner.notification.RunNotifier.SafeNotifier85 public void notifyListener(RunListener each) throws Exception {86 each.testStarted(description);87 }88 }.run();89 return;90 }91 throw new StoppedByUserException();92 }93 public void fireTestFailure(Failure failure) {94 fireTestFailures(this.listeners, Arrays.asList(failure));95 }96 /* access modifiers changed from: private */97 /* access modifiers changed from: public */98 private void fireTestFailures(List<RunListener> listeners2, final List<Failure> failures) {99 if (!failures.isEmpty()) {100 new SafeNotifier(listeners2) {101 /* class org.junit.runner.notification.RunNotifier.AnonymousClass4 */102 /* access modifiers changed from: protected */103 @Override // org.junit.runner.notification.RunNotifier.SafeNotifier104 public void notifyListener(RunListener listener) throws Exception {105 for (Failure each : failures) {106 listener.testFailure(each);107 }108 }109 }.run();110 }111 }112 public void fireTestAssumptionFailed(final Failure failure) {113 new SafeNotifier() {114 /* class org.junit.runner.notification.RunNotifier.AnonymousClass5 */115 /* access modifiers changed from: protected */116 @Override // org.junit.runner.notification.RunNotifier.SafeNotifier117 public void notifyListener(RunListener each) throws Exception {118 each.testAssumptionFailure(failure);119 }120 }.run();121 }122 public void fireTestIgnored(final Description description) {123 new SafeNotifier() {124 /* class org.junit.runner.notification.RunNotifier.AnonymousClass6 */125 /* access modifiers changed from: protected */126 @Override // org.junit.runner.notification.RunNotifier.SafeNotifier127 public void notifyListener(RunListener each) throws Exception {128 each.testIgnored(description);129 }130 }.run();131 }132 public void fireTestFinished(final Description description) {133 new SafeNotifier() {134 /* class org.junit.runner.notification.RunNotifier.AnonymousClass7 */135 /* access modifiers changed from: protected */136 @Override // org.junit.runner.notification.RunNotifier.SafeNotifier137 public void notifyListener(RunListener each) throws Exception {138 each.testFinished(description);139 }140 }.run();141 }142 public void pleaseStop() {143 this.pleaseStop = true;144 }145 public void addFirstListener(RunListener listener) {146 if (listener != null) {147 this.listeners.add(0, wrapIfNotThreadSafe(listener));148 return;149 }150 throw new NullPointerException("Cannot add a null listener");...
Source:JUnit4WrappedRunNotifier.java
2import org.junit.runner.Description;3import org.junit.runner.Result;4import org.junit.runner.notification.Failure;5import org.junit.runner.notification.RunListener;6import org.junit.runner.notification.RunNotifier;7import org.junit.runner.notification.StoppedByUserException;8public class JUnit4WrappedRunNotifier extends RunNotifier {9 private final RunNotifier notifier;10 private boolean testExpStarted;11 private Description runningTestDescription;12 private Failure testFailure;13 public JUnit4WrappedRunNotifier(RunNotifier notifier) {14 this.notifier = notifier;15 }16 /**17 * Test exploration is starting reset failed status18 */19 public void testExplorationStarted() {20 this.testExpStarted = true;21 this.testFailure = null;22 }23 /**24 * Only fire started event if the exploration is starting25 */26 @Override27 public void fireTestStarted(Description description) throws StoppedByUserException {28 if (this.testExpStarted) {29 this.notifier.fireTestStarted(description);30 this.runningTestDescription = description;31 // No longer starting32 this.testExpStarted = false;33 }34 }35 /**36 * Intercept test failure37 */38 @Override39 public void fireTestAssumptionFailed(Failure failure) {40 this.notifier.fireTestAssumptionFailed(failure);41 this.testFailure = failure;42 }43 /**44 * Intercept test failure45 */46 @Override47 public void fireTestFailure(Failure failure) {48 this.notifier.fireTestFailure(failure);49 this.testFailure = failure;50 }51 52 public void setFailure(Failure failure) {53 this.testFailure = failure;54 }55 /**56 * Return current test's failure status57 * 58 * @return current test's failure status59 */60 public boolean isTestFailed() {61 return this.testFailure != null;62 }63 64 /**65 * Return current test's failure object66 * 67 * @return current test's failure object68 */69 public Failure getFailure() {70 return this.testFailure;71 }72 /**73 * Do not fire test finished event until exploration is finished.74 */75 @Override76 public void fireTestFinished(Description description) {77 // Will be fired when exploration is completed.78 }79 /**80 * Fires the test finished event.81 */82 public void testExplorationFinished() {83 this.notifier.fireTestFinished(this.runningTestDescription);84 }85 /*86 * (non-Javadoc)87 * 88 * @see89 * org.junit.runner.notification.RunNotifier#fireTestIgnored(org.junit.runner90 * .Description)91 */92 @Override93 public void fireTestIgnored(Description description) {94 this.notifier.fireTestIgnored(description);95 }96 /*97 * (non-Javadoc)98 * 99 * @see100 * org.junit.runner.notification.RunNotifier#addFirstListener(org.junit.101 * runner.notification.RunListener)102 */103 @Override104 public void addFirstListener(RunListener listener) {105 this.notifier.addFirstListener(listener);106 }107 /*108 * (non-Javadoc)109 * 110 * @see111 * org.junit.runner.notification.RunNotifier#addListener(org.junit.runner112 * .notification.RunListener)113 */114 @Override115 public void addListener(RunListener listener) {116 this.notifier.addListener(listener);117 }118 /*119 * (non-Javadoc)120 * 121 * @see122 * org.junit.runner.notification.RunNotifier#fireTestRunFinished(org.junit123 * .runner.Result)124 */125 @Override126 public void fireTestRunFinished(Result result) {127 this.notifier.fireTestRunFinished(result);128 }129 /*130 * (non-Javadoc)131 * 132 * @see133 * org.junit.runner.notification.RunNotifier#fireTestRunStarted(org.junit134 * .runner.Description)135 */136 @Override137 public void fireTestRunStarted(Description description) {138 this.notifier.fireTestRunStarted(description);139 }140 /*141 * (non-Javadoc)142 * 143 * @see org.junit.runner.notification.RunNotifier#pleaseStop()144 */145 @Override146 public void pleaseStop() {147 this.notifier.pleaseStop();148 }149 /*150 * (non-Javadoc)151 * 152 * @see153 * org.junit.runner.notification.RunNotifier#removeListener(org.junit.runner154 * .notification.RunListener)155 */156 @Override157 public void removeListener(RunListener listener) {158 this.notifier.removeListener(listener);159 }160}...
Source:RunNotifierWrapper.java
...15import org.junit.runner.Description;16import org.junit.runner.Result;17import org.junit.runner.notification.Failure;18import org.junit.runner.notification.RunListener;19import org.junit.runner.notification.RunNotifier;20import org.junit.runner.notification.StoppedByUserException;21/**22 * A {@link RunNotifier} that delegates all its operations to another {@code RunNotifier}.23 * This class is meant to be overridden to modify some behaviors.24 */25public abstract class RunNotifierWrapper extends RunNotifier {26 private final RunNotifier delegate;27 /**28 * Creates a new instance.29 *30 * @param delegate notifier to delegate to31 */32 public RunNotifierWrapper(RunNotifier delegate) {33 this.delegate = delegate;34 }35 /**36 * @return the delegate37 */38 protected final RunNotifier getDelegate() {39 return delegate;40 }41 @Override42 public void addFirstListener(RunListener listener) {43 delegate.addFirstListener(listener);44 }45 @Override46 public void addListener(RunListener listener) {47 delegate.addListener(listener);48 }49 @Override50 public void removeListener(RunListener listener) {51 delegate.removeListener(listener);52 }...
Source:FailFastRunListener.java
...15 */16package org.libj.test;17import org.junit.runner.notification.Failure;18import org.junit.runner.notification.RunListener;19import org.junit.runner.notification.RunNotifier;20public class FailFastRunListener extends RunListener {21 private final RunNotifier runNotifier;22 public FailFastRunListener(final RunNotifier runNotifier) {23 this.runNotifier = runNotifier;24 }25 @Override26 public void testFailure(final Failure failure) throws Exception {27 super.testFailure(failure);28 this.runNotifier.pleaseStop();29 }30}...
Source:StopOnFailureRunner.java
1package ch.traal.vehicles.test.util;2import org.junit.runner.notification.Failure;3import org.junit.runner.notification.RunListener;4import org.junit.runner.notification.RunNotifier;5import org.junit.runners.model.InitializationError;6public class StopOnFailureRunner extends OrderedRunner {7 /* member variables */8 /* constructors */9 public StopOnFailureRunner(Class<?> clazz) throws InitializationError {10 super(clazz);11 }12 /* methods */13 @Override14 public void run(RunNotifier runNotifier) {15 runNotifier.addListener(new FailureListener(runNotifier));16 super.run(runNotifier);17 }18}19class FailureListener extends RunListener {20 private RunNotifier runNotifier;21 public FailureListener(RunNotifier runNotifier) {22 super();23 this.runNotifier = runNotifier;24 }25 @Override26 public void testFailure(Failure failure) throws Exception {27 super.testFailure(failure);28 this.runNotifier.pleaseStop();29 }30}...
Source:FailureListener.java
1package com.awet_integrated.tedd.execution;2import org.junit.runner.notification.Failure;3import org.junit.runner.notification.RunListener;4import org.junit.runner.notification.RunNotifier;5public class FailureListener extends RunListener {6 private RunNotifier runNotifier;7 public FailureListener(RunNotifier runNotifier) {8 super();9 this.runNotifier = runNotifier;10 }11 @Override12 public void testFailure(Failure failure) throws Exception {13 super.testFailure(failure);14 this.runNotifier.pleaseStop();15 }16}...
Source:FailFastListener.java
1package gov.nyc.dsny.smart.opsboard.testsuite;2import org.junit.runner.notification.Failure;3import org.junit.runner.notification.RunListener;4import org.junit.runner.notification.RunNotifier;5public class FailFastListener extends RunListener {6private RunNotifier runNotifier;7public FailFastListener(RunNotifier runNotifier) {8 super();9 this.runNotifier=runNotifier;10}11@Override12public void testFailure(Failure failure) throws Exception {13 this.runNotifier.pleaseStop();14}15}...
RunNotifier
Using AI Code Generation
1import org.junit.runner.notification.RunNotifier;2import org.junit.runner.notification.Failure;3import org.junit.runner.JUnitCore;4import org.junit.runner.Result;5import org.junit.runner.Description;6import org.junit.runner.notification.RunListener;7import java.util.List;8import java.util.ArrayList;9public class RunTestsWithRunNotifier {10 public static void main(String[] args) {11 RunNotifier notifier = new RunNotifier();12 RunListener listener = new RunListener() {13 public void testFailure(Failure failure) throws Exception {14 System.out.println("Test failed: " + failure.getDescription());15 }16 };17 notifier.addListener(listener);18 Result result = JUnitCore.runClasses(TestJunit1.class);19 notifier.fireTestRunFinished(result);20 }21}22Test failed: TestJunit1.testAdd()
1RedisClient client = RedisClient.create("redis://" + host + "/0");2StatefulRedisPubSubConnection<String, String> con = client.connectPubSub();34RedisPubSubListener<String, String> listener = new RedisPubSubAdapter<String, String>() {56 @Override7 public void message(String channel, String message) {8 System.out.println(String.format("Channel: %s, Message: %s", channel, message));9 }10};1112con.addListener(listener);13RedisPubSubCommands<String, String> sync = con.sync();14sync.subscribe("channel");15
1@Bean2public LettuceConnectionFactory redisConnectionFactory() {3 RedisStandaloneConfiguration redisConf = new RedisStandaloneConfiguration();4 redisConf.setHostName(env.getProperty("spring.redis.host"));5 redisConf.setPort(Integer.parseInt(env.getProperty("spring.redis.port")));6 redisConf.setPassword(RedisPassword.of(env.getProperty("spring.redis.password")));78 LettuceConnectionFactory factory = new LettuceConnectionFactory(redisConf);9 factory.setTimeout(500L); //timeout to redis1011 return factory;12 }13
JUnit Tutorial:
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.
JUnit Tutorial Chapters:
Here are the detailed JUnit testing chapters to help you get started:
- Importance of Unit testing - Learn why Unit testing is essential during the development phase to identify bugs and errors.
- Top Java Unit testing frameworks - Here are the upcoming JUnit automation testing frameworks that you can use in 2023 to boost your unit testing.
- What is the JUnit framework
- Why is JUnit testing important - Learn the importance and numerous benefits of using the JUnit testing framework.
- Features of JUnit - Learn about the numerous features of JUnit and why developers prefer it.
- JUnit 5 vs. JUnit 4: Differences - Here is a complete comparison between JUnit 5 and JUnit 4 testing frameworks.
- Setting up the JUnit environment - Learn how to set up your JUnit testing environment.
- Getting started with JUnit testing - After successfully setting up your JUnit environment, this chapter will help you get started with JUnit testing in no time.
- Parallel testing with JUnit - Parallel Testing can be used to reduce test execution time and improve test efficiency. Learn how to perform parallel testing with JUnit.
- Annotations in JUnit - When writing automation scripts with JUnit, we can use JUnit annotations to specify the type of methods in our test code. This helps us identify those methods when we run JUnit tests using Selenium WebDriver. Learn in detail what annotations are in JUnit.
- Assertions in JUnit - Assertions are used to validate or test that the result of an action/functionality is the same as expected. Learn in detail what assertions are and how to use them while performing JUnit testing.
- Parameterization in JUnit - Parameterized Test enables you to run the same automated test scripts with different variables. By collecting data on each method's test parameters, you can minimize time spent on writing tests. Learn how to use parameterization in JUnit.
- Nested Tests In JUnit 5 - A nested class is a non-static class contained within another class in a hierarchical structure. It can share the state and setup of the outer class. Learn about nested annotations in JUnit 5 with examples.
- Best practices for JUnit testing - Learn about the best practices, such as always testing key methods and classes, integrating JUnit tests with your build, and more to get the best possible results.
- Advanced Use Cases for JUnit testing - Take a deep dive into the advanced use cases, such as how to run JUnit tests in Jupiter, how to use JUnit 5 Mockito for Unit testing, and more for JUnit testing.
JUnit Certification:
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.