Search in sources :

Example 16 with FrameworkMethod

use of org.junit.runners.model.FrameworkMethod in project junit4 by junit-team.

the class CategoryValidatorTest method errorIsAddedWhenCategoryIsUsedWithAfterClass.

@Test
public void errorIsAddedWhenCategoryIsUsedWithAfterClass() {
    FrameworkMethod method = new TestClass(CategoryTest.class).getAnnotatedMethods(AfterClass.class).get(0);
    testAndAssertErrorMessage(method, "@AfterClass can not be combined with @Category");
}
Also used : TestClass(org.junit.runners.model.TestClass) FrameworkMethod(org.junit.runners.model.FrameworkMethod) AfterClass(org.junit.AfterClass) Test(org.junit.Test)

Example 17 with FrameworkMethod

use of org.junit.runners.model.FrameworkMethod in project junit4 by junit-team.

the class CategoryValidatorTest method errorIsAddedWhenCategoryIsUsedWithAfter.

@Test
public void errorIsAddedWhenCategoryIsUsedWithAfter() {
    FrameworkMethod method = new TestClass(CategoryTest.class).getAnnotatedMethods(After.class).get(0);
    testAndAssertErrorMessage(method, "@After can not be combined with @Category");
}
Also used : After(org.junit.After) TestClass(org.junit.runners.model.TestClass) FrameworkMethod(org.junit.runners.model.FrameworkMethod) Test(org.junit.Test)

Example 18 with FrameworkMethod

use of org.junit.runners.model.FrameworkMethod 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 19 with FrameworkMethod

use of org.junit.runners.model.FrameworkMethod 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 20 with FrameworkMethod

use of org.junit.runners.model.FrameworkMethod in project pinpoint by naver.

the class PinpointPluginTestRunner method sort.

public void sort(Sorter sorter) {
    synchronized (childrenLock) {
        for (FrameworkMethod each : getFilteredChildren()) {
            sorter.apply(each);
        }
        List<FrameworkMethod> sortedChildren = new ArrayList<FrameworkMethod>(getFilteredChildren());
        Collections.sort(sortedChildren, comparator(sorter));
        filteredChildren = Collections.unmodifiableCollection(sortedChildren);
    }
}
Also used : ArrayList(java.util.ArrayList) FrameworkMethod(org.junit.runners.model.FrameworkMethod)

Aggregations

FrameworkMethod (org.junit.runners.model.FrameworkMethod)59 ArrayList (java.util.ArrayList)15 Statement (org.junit.runners.model.Statement)13 TestClass (org.junit.runners.model.TestClass)13 Test (org.junit.Test)11 Method (java.lang.reflect.Method)10 MethodRule (org.junit.rules.MethodRule)5 Fail (org.junit.internal.runners.statements.Fail)4 RunBefores (org.junit.internal.runners.statements.RunBefores)4 TestRule (org.junit.rules.TestRule)4 Parameterized (org.junit.runners.Parameterized)3 Interaction (au.com.dius.pact.model.Interaction)2 ConsumerInfo (au.com.dius.pact.provider.ConsumerInfo)2 ProviderInfo (au.com.dius.pact.provider.ProviderInfo)2 ProviderVerifier (au.com.dius.pact.provider.ProviderVerifier)2 Provider (au.com.dius.pact.provider.junit.Provider)2 TargetRequestFilter (au.com.dius.pact.provider.junit.TargetRequestFilter)2 BounceMemberRule (com.hazelcast.test.bounce.BounceMemberRule)2 EmptyStatement (com.hazelcast.util.EmptyStatement)2 URL (java.net.URL)2