Search in sources :

Example 31 with Failure

use of org.junit.runner.notification.Failure in project junit4 by junit-team.

the class StackTracesTest method getTrimmedStackForJUnit4TestFailingInTestMethod.

@Test
public void getTrimmedStackForJUnit4TestFailingInTestMethod() {
    Result result = runTest(TestWithOneThrowingTestMethod.class);
    assertEquals("Should run the test", 1, result.getRunCount());
    assertEquals("One test should fail", 1, result.getFailureCount());
    Failure failure = result.getFailures().get(0);
    assertHasTrimmedTrace(failure, message("java.lang.RuntimeException: cause"), at("org.junit.internal.StackTracesTest$FakeClassUnderTest.doThrowExceptionWithoutCause"), at("org.junit.internal.StackTracesTest$FakeClassUnderTest.throwsExceptionWithoutCause"), at("org.junit.internal.StackTracesTest$TestWithOneThrowingTestMethod.alwaysThrows"));
    assertNotEquals(failure.getTrace(), failure.getTrimmedTrace());
}
Also used : Failure(org.junit.runner.notification.Failure) Result(org.junit.runner.Result) Test(org.junit.Test)

Example 32 with Failure

use of org.junit.runner.notification.Failure in project junit4 by junit-team.

the class ErrorReportingRunnerTest method givenInvalidTestClassErrorAsCause.

@Test
public void givenInvalidTestClassErrorAsCause() {
    final List<Failure> firedFailures = new ArrayList<Failure>();
    InvalidTestClassError testClassError = new InvalidTestClassError(TestClassWithErrors.class, Arrays.asList(new Throwable("validation error 1"), new Throwable("validation error 2")));
    ErrorReportingRunner sut = new ErrorReportingRunner(TestClassWithErrors.class, testClassError);
    sut.run(new RunNotifier() {

        @Override
        public void fireTestFailure(Failure failure) {
            super.fireTestFailure(failure);
            firedFailures.add(failure);
        }
    });
    assertThat(firedFailures.size(), is(1));
    Throwable exception = firedFailures.get(0).getException();
    assertThat(exception, instanceOf(InvalidTestClassError.class));
    assertThat(((InvalidTestClassError) exception), is(testClassError));
}
Also used : RunNotifier(org.junit.runner.notification.RunNotifier) ArrayList(java.util.ArrayList) Failure(org.junit.runner.notification.Failure) InvalidTestClassError(org.junit.runners.model.InvalidTestClassError) Test(org.junit.Test)

Example 33 with Failure

use of org.junit.runner.notification.Failure in project jersey by jersey.

the class ConcurrentParameterizedRunner method runChild.

@Override
protected void runChild(final FrameworkMethod method, final RunNotifier notifier) {
    notifier.fireTestStarted(describeChild(method));
    final Object testInstance;
    try {
        // get the test parameter iterator first
        final List<FrameworkMethod> parameterMethods = getTestClass().getAnnotatedMethods(Parameterized.Parameters.class);
        final Iterable<Object[]> parameters = (Iterable<Object[]>) parameterMethods.get(0).getMethod().invoke(null);
        // then create the test instance
        testInstance = super.createTest();
        // now run the before methods
        List<FrameworkMethod> befores = getTestClass().getAnnotatedMethods(Before.class);
        for (FrameworkMethod before : befores) {
            before.getMethod().invoke(testInstance);
        }
        // and launch as meny test method invocations as many parameters is available
        final Iterator<Object[]> paramIterator = parameters.iterator();
        final Method javaTestMethod = method.getMethod();
        final AtomicInteger submitted = new AtomicInteger(0);
        while (paramIterator.hasNext()) {
            final Object[] javaMethodArgs = paramIterator.next();
            submitted.incrementAndGet();
            executor.submit(new Runnable() {

                @Override
                public void run() {
                    try {
                        javaTestMethod.invoke(testInstance, javaMethodArgs);
                    } catch (IllegalAccessException ex) {
                        notifier.fireTestFailure(new Failure(describeChild(method), ex));
                    } catch (IllegalArgumentException ex) {
                        notifier.fireTestFailure(new Failure(describeChild(method), ex));
                    } catch (InvocationTargetException ex) {
                        notifier.fireTestFailure(new Failure(describeChild(method), ex));
                    } finally {
                        submitted.decrementAndGet();
                    }
                }
            });
        }
        // wait until everything is done
        while (submitted.intValue() > 0) {
            LOGGER.info(String.format("Waiting for %d requests to finish...%n", submitted.intValue()));
            try {
                Thread.sleep(FINISH_WAIT_CYCLE_MS);
            } catch (InterruptedException e) {
            }
        }
        // and launch the after party..
        List<FrameworkMethod> afters = getTestClass().getAnnotatedMethods(After.class);
        for (FrameworkMethod after : afters) {
            after.getMethod().invoke(testInstance);
        }
    } catch (Exception ex) {
        notifier.fireTestFailure(new Failure(describeChild(method), ex));
        return;
    }
    notifier.fireTestFinished(describeChild(method));
}
Also used : FrameworkMethod(org.junit.runners.model.FrameworkMethod) Method(java.lang.reflect.Method) InvocationTargetException(java.lang.reflect.InvocationTargetException) InvocationTargetException(java.lang.reflect.InvocationTargetException) Parameterized(org.junit.runners.Parameterized) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) FrameworkMethod(org.junit.runners.model.FrameworkMethod) Failure(org.junit.runner.notification.Failure)

Example 34 with Failure

use of org.junit.runner.notification.Failure in project jersey by jersey.

the class ConcurrentRunner method runThemAll.

private void runThemAll(final List<FrameworkMethod> methods, final RunNotifier notifier) {
    final Object testInstance;
    try {
        testInstance = super.createTest();
    } catch (Exception ex) {
        throw new RuntimeException(ex);
    }
    // run the before methods
    List<FrameworkMethod> befores = getTestClass().getAnnotatedMethods(Before.class);
    for (FrameworkMethod before : befores) {
        try {
            before.getMethod().invoke(testInstance);
        } catch (Exception ex) {
            LOGGER.log(java.util.logging.Level.SEVERE, null, ex);
        }
        final AtomicInteger submitted = new AtomicInteger(0);
        for (final FrameworkMethod method : methods) {
            try {
                notifier.fireTestStarted(describeChild(method));
                final Method javaTestMethod = method.getMethod();
                final Object[] javaMethodArgs = new Object[] {};
                submitted.incrementAndGet();
                executor.submit(new Runnable() {

                    @Override
                    public void run() {
                        try {
                            javaTestMethod.invoke(testInstance, javaMethodArgs);
                        } catch (Exception ex) {
                            notifier.fireTestFailure(new Failure(describeChild(method), ex));
                        } finally {
                            submitted.decrementAndGet();
                        }
                    }
                });
            } catch (Exception ex) {
                notifier.fireTestFailure(new Failure(describeChild(method), ex));
                return;
            }
            notifier.fireTestFinished(describeChild(method));
        }
        // wait until everything is done
        while (submitted.intValue() > 0) {
            LOGGER.info(String.format("Waiting for %d requests to finish...%n", submitted.intValue()));
            try {
                Thread.sleep(FINISH_WAIT_CYCLE_MS);
            } catch (InterruptedException e) {
            }
        }
        // and launch the after party..
        List<FrameworkMethod> afters = getTestClass().getAnnotatedMethods(After.class);
        for (FrameworkMethod after : afters) {
            try {
                after.getMethod().invoke(testInstance);
            } catch (Exception ex) {
                LOGGER.log(Level.SEVERE, null, ex);
            }
        }
    }
}
Also used : AtomicInteger(java.util.concurrent.atomic.AtomicInteger) FrameworkMethod(org.junit.runners.model.FrameworkMethod) Method(java.lang.reflect.Method) FrameworkMethod(org.junit.runners.model.FrameworkMethod) Failure(org.junit.runner.notification.Failure)

Example 35 with Failure

use of org.junit.runner.notification.Failure in project junit4 by junit-team.

the class ResultMatchersTest method hasFailureContaining_givenResultWithNoFailures.

@Test
public void hasFailureContaining_givenResultWithNoFailures() {
    PrintableResult resultWithNoFailures = new PrintableResult(new ArrayList<Failure>());
    assertThat(ResultMatchers.hasFailureContaining("").matches(resultWithNoFailures), is(false));
}
Also used : PrintableResult(org.junit.experimental.results.PrintableResult) Failure(org.junit.runner.notification.Failure) Test(org.junit.Test)

Aggregations

Failure (org.junit.runner.notification.Failure)194 Test (org.junit.Test)101 Result (org.junit.runner.Result)91 Description (org.junit.runner.Description)40 IOException (java.io.IOException)32 UnitTest (org.apache.geode.test.junit.categories.UnitTest)27 JUnitCore (org.junit.runner.JUnitCore)24 FileInputStream (java.io.FileInputStream)20 InputStream (java.io.InputStream)20 RunListener (org.junit.runner.notification.RunListener)19 ArrayList (java.util.ArrayList)11 ByteArrayInputStream (java.io.ByteArrayInputStream)9 ComparisonFailure (org.junit.ComparisonFailure)9 JUnit4TestListener (com.intellij.junit4.JUnit4TestListener)7 RunNotifier (org.junit.runner.notification.RunNotifier)7 ResourceImpl (ddf.catalog.resource.impl.ResourceImpl)6 Request (org.junit.runner.Request)6 BinaryContentImpl (ddf.catalog.data.impl.BinaryContentImpl)5 Before (org.junit.Before)5 Runner (org.junit.runner.Runner)5