Java 类org.junit.runner.manipulation.Filter 实例源码

项目:Reer    文件:JUnitTestClassExecuter.java   
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;
}
项目:lambda-selenium    文件:LambdaTestSuite.java   
protected static List<TestRequest> getTestRequests(String folderName, Filter filter) {
    List<TestRequest> requests = new ArrayList<>();
    getTestClasses(folderName).forEach(testClass -> {
        try {
            new BlockJUnit4ClassRunner(testClass).getDescription().getChildren()
                    .forEach(description -> {
                        if (filter.shouldRun(description)) {
                            TestRequest request = new TestRequest(description);
                            request.setTestRunUUID(TestUUID.getTestUUID());
                            requests.add(request);
                        }
                    });
        } catch (InitializationError e) {
            LOGGER.log(e);
        }
    });
    return requests;
}
项目:play1-maven-plugin    文件:PlayJUnit4Provider.java   
private static void execute( Class<?> testClass, Notifier notifier, Filter filter )
    throws TestSetFailedException
{
    final int classModifiers = testClass.getModifiers();
    if ( !isAbstract( classModifiers ) && !isInterface( classModifiers ) )
    {
        Request request = aClass( testClass );
        if ( filter != null )
        {
            request = request.filterWith( filter );
        }
        Runner runner = request.getRunner();
        if ( countTestsInRunner( runner.getDescription() ) != 0 )
        {
            executeInPlayContext( runner, notifier );
        }
    }
}
项目:ef-orm    文件:JefJUnit4DatabaseTestRunner.java   
@Override
public void filter(final Filter raw) throws NoTestsRemainException {
    super.filter(new Filter() {
        @Override
        public boolean shouldRun(Description description) {
            String testDisplay = StringUtils.substringBefore(description.getDisplayName(), " ");
            if (testDisplay != description.getDisplayName()) {
                description = Description.createTestDescription(description.getTestClass(), testDisplay);
            }
            return raw.shouldRun(description);
        }

        @Override
        public String describe() {
            return raw.describe();
        }
    });
}
项目:sosiefier    文件:MaxStarterTest.java   
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);
}
项目:pitest    文件:JUnitCustomRunnerTestUnitFinder.java   
@Override
public List<TestUnit> findTestUnits(final Class<?> clazz) {

  final Runner runner = AdaptedJUnitTestUnit.createRunner(clazz);

  if (isExcluded(runner) || isNotARunnableTest(runner, clazz.getName()) || !isIncluded(clazz)) {
    return Collections.emptyList();
  }

  if (Filterable.class.isAssignableFrom(runner.getClass())
      && !shouldTreatAsOneUnit(clazz, runner)) {
    List<TestUnit> filteredUnits = splitIntoFilteredUnits(runner.getDescription());
    return filterUnitsByMethod(filteredUnits);
  } else {
    return Collections.<TestUnit> singletonList(new AdaptedJUnitTestUnit(
        clazz, Option.<Filter> none()));
  }
}
项目:pitest    文件:AdaptedJUnitTestUnitTest.java   
private Option<Filter> createFilter(final Class<?> clazz, final String method) {
  final Description d = Description.createTestDescription(clazz, method);
  final Filter f = new Filter() {

    @Override
    public boolean shouldRun(final Description description) {
      return d.toString().equals(description.toString());
    }

    @Override
    public String describe() {
      return null;
    }

  };
  return Option.some(f);
}
项目:bazel    文件:ShardingFilterTestCase.java   
/**
 * Simulates test sharding with the given filters and test descriptions, for a
 * set of test descriptions that is in a different order in every test shard.
 *
 * @param filters a list of filters, one per test shard
 * @param descriptions a list of test descriptions
 * @return a mapping from each filter to the descriptions of the tests that would be run
 *   by the shard associated with that filter.
 */
protected static Map<Filter, List<Description>> simulateSelfRandomizingTestRun(
    List<Filter> filters, List<Description> descriptions) {
  if (descriptions.isEmpty()) {
    return new HashMap<>();
  }
  Deque<Description> mutatingDescriptions = new LinkedList<>(descriptions);
  Map<Filter, List<Description>> descriptionsRun = new HashMap<>();

  for (Filter filter : filters) {
    // rotate the queue so that each filter gets the descriptions in a different order
    mutatingDescriptions.addLast(mutatingDescriptions.pollFirst());
    for (Description description : descriptions) {
      if (filter.shouldRun(description)) {
        addDescriptionForFilterToMap(descriptionsRun, filter, description);
      }
    }
  }
  return descriptionsRun;
}
项目:bazel    文件:ShardingFiltersTest.java   
@Test
public void testCreateShardingFilter_defaultStrategy() {
  List<Description> descriptions = ShardingFilterTestCase.createGenericTestCaseDescriptions(6);
  RoundRobinShardingFilter expectedFilter = new RoundRobinShardingFilter(descriptions, 0, 5);

  when(mockShardingEnvironment.getShardIndex()).thenReturn(0);
  when(mockShardingEnvironment.getTotalShards()).thenReturn(5);
  when(mockShardingEnvironment.getTestShardingStrategy()).thenReturn(null);

  ShardingFilters shardingFilters = new ShardingFilters(mockShardingEnvironment,
      ShardingFilters.ShardingStrategy.ROUND_ROBIN);
  Filter filter = shardingFilters.createShardingFilter(descriptions);

  assertThat(filter).isInstanceOf(RoundRobinShardingFilter.class);
  RoundRobinShardingFilter shardingFilter = (RoundRobinShardingFilter) filter;
  assertThat(shardingFilter.testToShardMap).isEqualTo(expectedFilter.testToShardMap);
  assertThat(shardingFilter.shardIndex).isEqualTo(expectedFilter.shardIndex);
  assertThat(shardingFilter.totalShards).isEqualTo(expectedFilter.totalShards);
}
项目:havarunner    文件:FilterTest.java   
@Test
public void HavaRunner_supports_the_JUnit_filter_API_even_when_the_test_contains_scenarios() {
    HavaRunner havaRunner = new HavaRunner(TestClassWithScenarios.class);
    havaRunner.filter(new Filter() {
        public boolean shouldRun(Description description) {
            throw new UnsupportedOperationException("HavaRunner should not call this method");
        }

        public String describe() {
            return String.format("Method HavaRunner_should_run_only_this_method(%s)", TestClassWithScenarios.class.getName());
        }
    });
    run(havaRunner);
    assertEquals(Sets.newHashSet("first scenario", "second scenario"), TestClassWithScenarios.filteredTestCalledForScenarios);
    assertEquals(Sets.newHashSet(), TestClassWithScenarios.rejectedTestCalledForScenarios);
}
项目:junit    文件:MaxStarterTest.java   
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);
}
项目:health-and-care-developer-network    文件:MaxStarterTest.java   
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);
}
项目:Reer    文件:AbstractMultiTestRunner.java   
private void initExecutions() {
    if (!executionsInitialized) {
        try {
            Runner descriptionProvider = createRunnerFor(Arrays.asList(target), Collections.<Filter>emptyList());
            templateDescription = descriptionProvider.getDescription();
        } catch (InitializationError initializationError) {
            throw UncheckedException.throwAsUncheckedException(initializationError);
        }
        createExecutions();
        for (Execution execution : executions) {
            execution.init(target, templateDescription);
        }
        executionsInitialized = true;
    }
}
项目:Reer    文件:AbstractMultiTestRunner.java   
private void runEnabledTests(RunNotifier nested) {
    if (enabledTests.isEmpty()) {
        return;
    }

    Runner runner;
    try {
        runner = createExecutionRunner();
    } catch (Throwable t) {
        runner = new CannotExecuteRunner(getDisplayName(), target, t);
    }

    try {
        if (!disabledTests.isEmpty()) {
            ((Filterable) runner).filter(new Filter() {
                @Override
                public boolean shouldRun(Description description) {
                    return !disabledTests.contains(description);
                }

                @Override
                public String describe() {
                    return "disabled tests";
                }
            });
        }
    } catch (NoTestsRemainException e) {
        return;
    }

    runner.run(nested);
}
项目:rtest    文件:FilterDataCreator.java   
private void populateDescriptionRunningMap(Description description, Map<Description, Boolean> accumulator, Filter filter) {
    if(description.isTest()) {
        Boolean shouldRunStatus = filter.shouldRun(description);
        accumulator.put(description, shouldRunStatus);
        return;
    }
    List<Description> children = description.getChildren();
    for(Description d : children) {
        populateDescriptionRunningMap(d, accumulator, filter);
    }
}
项目:rtest    文件:FilterData.java   
public Filter getFilter() {
    return new Filter() {
        @Override
        public boolean shouldRun(Description description) {
            return Boolean.TRUE.equals(context.get(description));
        }

        @Override
        public String describe() {
            return "RTest Filter";
        }

        @Override
        public void apply(Object child) throws NoTestsRemainException {
            if(child instanceof Filterable) {
                Filterable filterableChild = (Filterable) child;
                filterableChild.filter(this);
            }
        }
    };
    //return Filter.matchMethodDescription(desiredDescription);
       /*return new Filter() {
           @Override
           public boolean shouldRun(Description description) {
               return (toRun.contains(description));

           }

           @Override
           public String describe() {
               return "RTest methods filter";
           }
       };*/

}
项目:wycheproof    文件:WycheproofRunner.java   
private void addFilter(Filter filter) {
  try {
    filter(filter);
  } catch (NoTestsRemainException ex) {
    System.out.println("No tests remain exception: " + ex);
  }
}
项目:dsl-devkit    文件:FilterRegistry.java   
/**
 * Describes the list of filters.
 *
 * @param filters
 *          the filters to describe, must not be {@code null}
 * @param title
 *          the title for the filters, may be {@code null}
 * @return
 *         the description for the given filters, never {@code null}
 */
private String describeFilters(final List<Filter> filters, final String title) {
  assert filters != null;
  final StringBuilder description = new StringBuilder();
  if (!filters.isEmpty()) {
    description.append(" (").append(title).append(" filters:");
    for (final Filter filter : filters) {
      description.append(' ').append(filter.describe());
    }
    description.append(')');
  }
  return description.toString();
}
项目:junit-theory-suite    文件:TheorySuite.java   
/**
 * The defines the tree of tests that will be run.
 */
@Override
public Description getDescription() {

    ensureInit();
    if (filter != Filter.ALL || sorter != null) {
        suiteDescription = rebuildDescriptionByFilter(suiteDescription);
    }

    return suiteDescription;
}
项目:junit-theory-suite    文件:TheorySuite.java   
private static boolean filterAppliesToAny(Description d, Filter f) {
    if (f.shouldRun(d)) {
        return true;
    }

    for (Description c : d.getChildren()) {
        if (filterAppliesToAny(c, f)) {
            return true;
        }
    }

    return false;

}
项目:junit-theory-suite    文件:TheorySuite.java   
/**
 * Initialise all data members. Needed as a lot of work gets done before
 * constructor completes.
 */
private void ensureInit() {
    if (suiteDescription == null) {

        suiteDescription = Description.createSuiteDescription(getTestClass().getJavaClass());
        descriptions = new IdentityHashMap<>();
        checksByMethod = new ConcurrentHashMap<>();
        finder = new PotentialAssignmentFinder(getTestClass());
        constraints = new ConstraintFinder(getTestClass(), this::reportError);
        filter = Filter.ALL;
    }
}
项目:Pushjet-Android    文件:AbstractMultiTestRunner.java   
private void initExecutions() {
    if (executions.isEmpty()) {
        try {
            Runner descriptionProvider = createRunnerFor(Arrays.asList(target), Collections.<Filter>emptyList());
            templateDescription = descriptionProvider.getDescription();
        } catch (InitializationError initializationError) {
            throw UncheckedException.throwAsUncheckedException(initializationError);
        }
        createExecutions();
        for (Execution execution : executions) {
            execution.init(target, templateDescription);
        }
    }
}
项目:Pushjet-Android    文件:AbstractMultiTestRunner.java   
private void runEnabledTests(RunNotifier nested) {
    if (enabledTests.isEmpty()) {
        return;
    }

    Runner runner;
    try {
        runner = createExecutionRunner();
    } catch (Throwable t) {
        runner = new CannotExecuteRunner(getDisplayName(), target, t);
    }

    try {
        if (!disabledTests.isEmpty()) {
            ((Filterable) runner).filter(new Filter() {
                @Override
                public boolean shouldRun(Description description) {
                    return !disabledTests.contains(description);
                }

                @Override
                public String describe() {
                    return "disabled tests";
                }
            });
        }
    } catch (NoTestsRemainException e) {
        return;
    }

    runner.run(nested);
}
项目:Pushjet-Android    文件:AbstractMultiTestRunner.java   
private void initExecutions() {
    if (executions.isEmpty()) {
        try {
            Runner descriptionProvider = createRunnerFor(Arrays.asList(target), Collections.<Filter>emptyList());
            templateDescription = descriptionProvider.getDescription();
        } catch (InitializationError initializationError) {
            throw UncheckedException.throwAsUncheckedException(initializationError);
        }
        createExecutions();
        for (Execution execution : executions) {
            execution.init(target, templateDescription);
        }
    }
}
项目:Pushjet-Android    文件:AbstractMultiTestRunner.java   
private void runEnabledTests(RunNotifier nested) {
    if (enabledTests.isEmpty()) {
        return;
    }

    Runner runner;
    try {
        runner = createExecutionRunner();
    } catch (Throwable t) {
        runner = new CannotExecuteRunner(getDisplayName(), target, t);
    }

    try {
        if (!disabledTests.isEmpty()) {
            ((Filterable) runner).filter(new Filter() {
                @Override
                public boolean shouldRun(Description description) {
                    return !disabledTests.contains(description);
                }

                @Override
                public String describe() {
                    return "disabled tests";
                }
            });
        }
    } catch (NoTestsRemainException e) {
        return;
    }

    runner.run(nested);
}
项目:sosiefier    文件:CategoryFilterFactory.java   
/**
 * Creates a {@link org.junit.experimental.categories.Categories.CategoryFilter} given a
 * {@link FilterFactoryParams} argument.
 *
 * @param params Parameters needed to create the {@link Filter}
 */
public Filter createFilter(FilterFactoryParams params) throws FilterNotCreatedException {
    try {
        return createFilter(parseCategories(params.getArgs()));
    } catch (ClassNotFoundException e) {
        throw new FilterNotCreatedException(e);
    }
}
项目:sosiefier    文件:FilterRequest.java   
@Override
public Runner getRunner() {
    try {
        Runner runner = fRequest.getRunner();
        fFilter.apply(runner);
        return runner;
    } catch (NoTestsRemainException e) {
        return new ErrorReportingRunner(Filter.class, new Exception(String
                .format("No tests found matching %s from %s", fFilter
                        .describe(), fRequest.toString())));
    }
}
项目:sosiefier    文件:FilterFactories.java   
/**
 * Creates a {@link Filter}.
 *
 * A filter specification is of the form "package.of.FilterFactory=args-to-filter-factory" or
 * "package.of.FilterFactory".
 *
 * @param filterSpec The filter specification
 */
public static Filter createFilterFromFilterSpec(Description description, String filterSpec)
        throws FilterFactory.FilterNotCreatedException {
    String[] tuple;

    if (filterSpec.contains("=")) {
        tuple = filterSpec.split("=", 2);
    } else {
        tuple = new String[]{ filterSpec, "" };
    }

    return createFilter(tuple[0], new FilterFactoryParams(tuple[1]));
}
项目:sosiefier    文件:FilterFactories.java   
/**
 * Creates a {@link Filter}.
 *
 * @param filterFactoryFqcn The fully qualified class name of the {@link FilterFactory}
 * @param params The arguments to the {@link FilterFactory}
 */
public static Filter createFilter(String filterFactoryFqcn, FilterFactoryParams params)
        throws FilterFactory.FilterNotCreatedException {
    FilterFactory filterFactory = createFilterFactory(filterFactoryFqcn);

    return filterFactory.createFilter(params);
}
项目:sosiefier    文件:CategoryFilterFactoryTest.java   
@Test
public void shouldCreateFilter() throws Exception {
    FilterFactoryParams params = new FilterFactoryParams(
            CategoryFilterFactoryStub.class.getName());
    Filter filter = categoryFilterFactory.createFilter(params);

    assertThat(filter, instanceOf(DummyFilter.class));
}
项目:sosiefier    文件:MaxStarterTest.java   
@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());
}
项目:sosiefier    文件:ParentRunnerFilteringTest.java   
private static Filter notThisMethodName(final String methodName) {
    return new Filter() {
        @Override
        public boolean shouldRun(Description description) {
            return description.getMethodName() == null
                    || !description.getMethodName().equals(methodName);
        }

        @Override
        public String describe() {
            return "don't run method name: " + methodName;
        }
    };
}
项目:sosiefier    文件:ParentRunnerFilteringTest.java   
@Test
public void testSuiteFiltering() throws Exception {
    Runner runner = Request.aClass(ExampleSuite.class).getRunner();
    Filter filter = notThisMethodName("test1");
    try {
        filter.apply(runner);
    } catch (NoTestsRemainException e) {
        return;
    }
    fail("Expected 'NoTestsRemainException' due to complete filtering");
}
项目:sosiefier    文件:ParentRunnerFilteringTest.java   
@Test
public void testSuiteFilteringWithUnmodifyableChildList() throws Exception {
    Runner runner = Request.aClass(ExampleSuiteWithUnmodifyableChildList.class)
            .getRunner();
    Filter filter = notThisMethodName("test1");
    try {
        filter.apply(runner);
    } catch (NoTestsRemainException e) {
        return;
    }
    fail("Expected 'NoTestsRemainException' due to complete filtering");
}
项目:sosiefier    文件:FilterableTest.java   
public FilteredRunner(Class<?> klass) throws Throwable {
    super(klass);
    filter(new Filter() {

        @Override
        public boolean shouldRun(Description description) {
            return !description.getDisplayName().contains("skip");
        }

        @Override
        public String describe() {
            return "skip methods containing the word 'skip'";
        }
    });
}
项目:sosiefier    文件:SingleMethodTest.java   
@Test(expected = NoTestsRemainException.class)
public void filteringAwayEverythingThrowsException() throws NoTestsRemainException {
    Filterable runner = (Filterable) Request.aClass(OneTimeSetup.class).getRunner();
    runner.filter(new Filter() {
        @Override
        public boolean shouldRun(Description description) {
            return false;
        }

        @Override
        public String describe() {
            return null;
        }
    });
}
项目:sosiefier    文件:FilterTest.java   
@Test
public void intersectAll() {
    NamedFilter a = new NamedFilter("a");
    assertSame(a, a.intersect(Filter.ALL));
    assertSame(a, Filter.ALL.intersect(a));
    assertSame(Filter.ALL, Filter.ALL.intersect(Filter.ALL));
}
项目:sosiefier    文件:JUnitCommandLineParseResultTest.java   
@Test
public void shouldParseFilterArgWithEqualsSyntax() throws Exception {
    jUnitCommandLineParseResult.parseOptions(new String[]{
            "--filter=" + IncludeCategories.class.getName() + "=" + DummyCategory0.class.getName()
    });

    Filter filter = jUnitCommandLineParseResult.getFilter();

    assertThat(filter.describe(), startsWith("includes "));
}
项目:sosiefier    文件:JUnitCommandLineParseResultTest.java   
@Test
public void shouldParseFilterArgInWhichValueIsASeparateArg() throws Exception {
    jUnitCommandLineParseResult.parseOptions(new String[]{
            "--filter",
            IncludeCategories.class.getName() + "=" + DummyCategory0.class.getName()
    });

    Filter filter = jUnitCommandLineParseResult.getFilter();

    assertThat(filter.describe(), startsWith("includes "));
}
项目:sosiefier    文件:FilterFactoriesTest.java   
@Test
public void shouldCreateFilterWithArguments() throws Exception {
    Filter filter = FilterFactories.createFilterFromFilterSpec(
            createSuiteDescription(testName.getMethodName()),
            ExcludeCategories.class.getName() + "=" + DummyCategory.class.getName());

    assertThat(filter.describe(), startsWith("excludes "));
}