Search in sources :

Example 6 with Filter

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

the class JUnitTestClassExecuter method runTestClass.

private void runTestClass(String testClassName) throws ClassNotFoundException {
    final Class<?> testClass = Class.forName(testClassName, false, applicationClassLoader);
    List<Filter> filters = new ArrayList<Filter>();
    if (options.hasCategoryConfiguration()) {
        verifyJUnitCategorySupport();
        Transformer<Class<?>, String> transformer = new Transformer<Class<?>, String>() {

            public Class<?> transform(final String original) {
                try {
                    return applicationClassLoader.loadClass(original);
                } catch (ClassNotFoundException e) {
                    throw new InvalidUserDataException(String.format("Can't load category class [%s].", original), e);
                }
            }
        };
        filters.add(new CategoryFilter(CollectionUtils.collect(options.getIncludeCategories(), transformer), CollectionUtils.collect(options.getExcludeCategories(), transformer)));
    }
    Request request = Request.aClass(testClass);
    Runner runner = request.getRunner();
    if (!options.getIncludedTests().isEmpty()) {
        TestSelectionMatcher matcher = new TestSelectionMatcher(options.getIncludedTests());
        // 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) Transformer(org.gradle.api.Transformer) RunNotifier(org.junit.runner.notification.RunNotifier) ArrayList(java.util.ArrayList) Request(org.junit.runner.Request) NoTestsRemainException(org.junit.runner.manipulation.NoTestsRemainException) TestSelectionMatcher(org.gradle.api.internal.tasks.testing.filter.TestSelectionMatcher) Filter(org.junit.runner.manipulation.Filter) InvalidUserDataException(org.gradle.api.InvalidUserDataException) Filterable(org.junit.runner.manipulation.Filterable)

Example 7 with Filter

use of org.junit.runner.manipulation.Filter in project bazel by bazelbuild.

the class JUnit4Runner method run.

/**
   * Runs the JUnit4 test.
   *
   * @return Result of running the test
   */
public Result run() {
    testRunnerOut.println("JUnit4 Test Runner");
    checkJUnitRunnerApiVersion();
    for (Initializer init : initializers) {
        init.initialize();
    }
    // Sharding
    TestSuiteModel model = modelSupplier.get();
    Filter shardingFilter = model.getShardingFilter();
    Request filteredRequest = applyFilters(request, shardingFilter, config.getTestIncludeFilterRegexp(), config.getTestExcludeFilterRegexp());
    JUnitCore core = new JUnitCore();
    for (RunListener runListener : runListeners) {
        core.addListener(runListener);
    }
    File exitFile = getExitFile();
    exitFileActive(exitFile);
    try {
        try {
            if (config.shouldInstallSecurityManager()) {
                installSecurityManager();
            }
            Request cancellableRequest = requestFactory.createRequest(filteredRequest);
            return core.run(cancellableRequest);
        } finally {
            disableSecurityManager();
        }
    } finally {
        exitFileInactive(exitFile);
    }
}
Also used : JUnitCore(org.junit.runner.JUnitCore) Filter(org.junit.runner.manipulation.Filter) RegExTestCaseFilter(com.google.testing.junit.junit4.runner.RegExTestCaseFilter) SuiteTrimmingFilter(com.google.testing.junit.junit4.runner.SuiteTrimmingFilter) TestSuiteModel(com.google.testing.junit.runner.model.TestSuiteModel) Request(org.junit.runner.Request) File(java.io.File) RunListener(org.junit.runner.notification.RunListener)

Example 8 with Filter

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

the class OrFilterTests method evaluatesMultipleFilters.

@Test
void evaluatesMultipleFilters() {
    Filter filter1 = mockFilter("foo", false);
    Filter filter2 = mockFilter("bar", true);
    OrFilter orFilter = new OrFilter(asList(filter1, filter2));
    assertEquals("foo OR bar", orFilter.describe());
    Description description = Description.createTestDescription(getClass(), "evaluatesMultipleFilters");
    assertTrue(orFilter.shouldRun(description));
    verify(filter1).shouldRun(same(description));
    verify(filter2).shouldRun(same(description));
}
Also used : Description(org.junit.runner.Description) Filter(org.junit.runner.manipulation.Filter) Test(org.junit.jupiter.api.Test)

Example 9 with Filter

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

the class OrFilterTests method mockFilter.

private Filter mockFilter(String description, boolean result) {
    Filter filter = mock(Filter.class);
    when(filter.describe()).thenReturn(description);
    when(filter.shouldRun(any())).thenReturn(result);
    return filter;
}
Also used : Filter(org.junit.runner.manipulation.Filter)

Example 10 with Filter

use of org.junit.runner.manipulation.Filter in project junit-dataprovider by TNG.

the class DataProviderRunnerTest method testFilterShould.

@Test
public void testFilterShould() throws Exception {
    // Given:
    Filter filter = Filter.ALL;
    // When:
    underTest.filter(filter);
    // Then:
    assertThat(underTest.getDescription().getChildren().size()).isGreaterThan(0);
}
Also used : Filter(org.junit.runner.manipulation.Filter) Test(org.junit.Test)

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