/* * Copyright (c) 2007 Mockito contributors * This program is made available under the terms of the MIT License. */ package org.mockito.runners; import org.junit.runner.Description; import org.junit.runner.Runner; import org.junit.runner.manipulation.Filter; import org.junit.runner.manipulation.Filterable; import org.junit.runner.manipulation.NoTestsRemainException; import org.junit.runner.notification.Failure; import org.junit.runner.notification.RunListener; import org.junit.runner.notification.RunNotifier; import org.mockito.internal.debugging.WarningsCollector; import org.mockito.internal.runners.RunnerFactory; import org.mockito.internal.runners.InternalRunner; import org.mockito.internal.util.ConsoleMockitoLogger; import org.mockito.internal.util.MockitoLogger; import java.lang.reflect.InvocationTargetException; /** * @deprecated as of 2.1.0. Use the {@link org.mockito.junit.MockitoJUnitRunner} runner instead * which contains support for detecting unused stubs. * <p> * If you still prefer using this runner, tell us why (create ticket in our issue tracker). */ @Deprecated public class ConsoleSpammingMockitoJUnitRunner extends Runner implements Filterable { private final MockitoLogger logger; private final InternalRunner runner; public ConsoleSpammingMockitoJUnitRunner(Class<?> klass) throws InvocationTargetException { this(new ConsoleMockitoLogger(), new RunnerFactory().create(klass)); } ConsoleSpammingMockitoJUnitRunner(MockitoLogger logger, InternalRunner runner) { this.runner = runner; this.logger = logger; } @Override public void run(RunNotifier notifier) { RunListener listener = new RunListener() { WarningsCollector warningsCollector; @Override public void testStarted(Description description) throws Exception { warningsCollector = new WarningsCollector(); } @Override public void testFailure(Failure failure) throws Exception { logger.log(warningsCollector.getWarnings()); } }; notifier.addListener(listener); runner.run(notifier); } @Override public Description getDescription() { return runner.getDescription(); } public void filter(Filter filter) throws NoTestsRemainException { //filter is required because without it UnrootedTests show up in Eclipse runner.filter(filter); } }