Search in sources :

Example 31 with Filter

use of org.junit.runner.manipulation.Filter in project junit4 by junit-team.

the class MaxStarterTest method filterSingleMethodFromOldTestClass.

@Test
public void filterSingleMethodFromOldTestClass() throws Exception {
    final Description method = Description.createTestDescription(TwoOldTests.class, "testOne");
    Filter filter = Filter.matchMethodDescription(method);
    JUnit38ClassRunner child = new JUnit38ClassRunner(TwoOldTests.class);
    child.filter(filter);
    assertEquals(1, child.testCount());
}
Also used : Description(org.junit.runner.Description) Filter(org.junit.runner.manipulation.Filter) JUnit38ClassRunner(org.junit.internal.runners.JUnit38ClassRunner) Test(org.junit.Test)

Example 32 with Filter

use of org.junit.runner.manipulation.Filter in project junit4 by junit-team.

the class MaxStarterTest method assertFilterLeavesTestUnscathed.

private void assertFilterLeavesTestUnscathed(Class<?> testClass) {
    Request oneClass = Request.aClass(testClass);
    Request filtered = oneClass.filterWith(new Filter() {

        @Override
        public boolean shouldRun(Description description) {
            return true;
        }

        @Override
        public String describe() {
            return "Everything";
        }
    });
    int filterCount = filtered.getRunner().testCount();
    int coreCount = oneClass.getRunner().testCount();
    assertEquals("Counts match up in " + testClass, coreCount, filterCount);
}
Also used : Description(org.junit.runner.Description) Filter(org.junit.runner.manipulation.Filter) Request(org.junit.runner.Request) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString)

Example 33 with Filter

use of org.junit.runner.manipulation.Filter in project gradle by gradle.

the class JUnitTestClassExecutor method allTestsFiltered.

private boolean allTestsFiltered(Runner runner, List<Filter> filters) {
    LinkedList<Description> queue = new LinkedList<Description>();
    queue.add(runner.getDescription());
    while (!queue.isEmpty()) {
        Description description = queue.removeFirst();
        queue.addAll(description.getChildren());
        boolean run = true;
        for (Filter filter : filters) {
            if (!filter.shouldRun(description)) {
                run = false;
                break;
            }
        }
        if (run) {
            return false;
        }
    }
    return true;
}
Also used : Description(org.junit.runner.Description) Filter(org.junit.runner.manipulation.Filter) LinkedList(java.util.LinkedList)

Example 34 with Filter

use of org.junit.runner.manipulation.Filter in project gradle by gradle.

the class JUnitTestClassExecutor method runTestClass.

private void runTestClass(String testClassName) throws ClassNotFoundException {
    final Class<?> testClass = Class.forName(testClassName, false, applicationClassLoader);
    if (isNestedClassInsideEnclosedRunner(testClass)) {
        return;
    }
    List<Filter> filters = new ArrayList<Filter>();
    if (options.hasCategoryConfiguration()) {
        verifyJUnitCategorySupport();
        filters.add(new CategoryFilter(options.getIncludeCategories(), options.getExcludeCategories(), applicationClassLoader));
    }
    Request request = Request.aClass(testClass);
    Runner runner = request.getRunner();
    if (!options.getIncludedTests().isEmpty() || !options.getIncludedTestsCommandLine().isEmpty() || !options.getExcludedTests().isEmpty()) {
        TestSelectionMatcher matcher = new TestSelectionMatcher(options.getIncludedTests(), options.getExcludedTests(), options.getIncludedTestsCommandLine());
        // matches the filter, run the entire suite instead of filtering away its contents.
        if (!runner.getDescription().isSuite() || !matcher.matchesTest(testClassName, null)) {
            filters.add(new MethodNameFilter(matcher));
        }
    }
    if (runner instanceof Filterable) {
        Filterable filterable = (Filterable) runner;
        for (Filter filter : filters) {
            try {
                filterable.filter(filter);
            } catch (NoTestsRemainException e) {
                // Ignore
                return;
            }
        }
    } else if (allTestsFiltered(runner, filters)) {
        return;
    }
    RunNotifier notifier = new RunNotifier();
    notifier.addListener(listener);
    runner.run(notifier);
}
Also used : Runner(org.junit.runner.Runner) TestSelectionMatcher(org.gradle.api.internal.tasks.testing.filter.TestSelectionMatcher) RunNotifier(org.junit.runner.notification.RunNotifier) Filter(org.junit.runner.manipulation.Filter) Filterable(org.junit.runner.manipulation.Filterable) ArrayList(java.util.ArrayList) Request(org.junit.runner.Request) NoTestsRemainException(org.junit.runner.manipulation.NoTestsRemainException)

Aggregations

Filter (org.junit.runner.manipulation.Filter)34 Test (org.junit.Test)14 Description (org.junit.runner.Description)14 Runner (org.junit.runner.Runner)8 Request (org.junit.runner.Request)7 NoTestsRemainException (org.junit.runner.manipulation.NoTestsRemainException)7 Filterable (org.junit.runner.manipulation.Filterable)4 ArrayList (java.util.ArrayList)3 LinkedList (java.util.LinkedList)3 RunNotifier (org.junit.runner.notification.RunNotifier)3 RegExTestCaseFilter (com.google.testing.junit.junit4.runner.RegExTestCaseFilter)2 SuiteTrimmingFilter (com.google.testing.junit.junit4.runner.SuiteTrimmingFilter)2 IOException (java.io.IOException)2 Method (java.lang.reflect.Method)2 TestSelectionMatcher (org.gradle.api.internal.tasks.testing.filter.TestSelectionMatcher)2 Test (org.junit.jupiter.api.Test)2 JUnitCore (org.junit.runner.JUnitCore)2 Result (org.junit.runner.Result)2 RunListener (org.junit.runner.notification.RunListener)2 MethodGlobFilter (com.carrotsearch.randomizedtesting.MethodGlobFilter)1