@ParameterizedTest(name = "{displayName}({arguments})")
    @ValueSource(classes = {ATestClass.class, ATestSubclass.class})
    void skipsNonParameterizedTest_ifExcludedByFilter(Class<?> testClass)
        throws InitializationError, NoTestsRemainException {
      GeodeParamsRunner runner = new GeodeParamsRunner(testClass);
      Description classDescription = runner.getDescription();

      // Each test description child describes a non-parameterized test. Pick one to exclude.
      Description testToExclude = testDescriptionChildrenOf(classDescription)
          .get(0);

      // The runner must execute every test except the excluded one.
      Collection<String> requiredExecutions = testDescriptionDescendantsOf(classDescription)
          .stream()
          .filter(d -> !d.equals(testToExclude))
          .map(Description::getDisplayName)
          .collect(toList());

      runner.filter(new ExcludeDescriptionFilter(testToExclude));

      runner.run(notifier);

      assertThat(executions)
          .as(() -> "tests executed by " + runner + " after excluding " + testToExclude)
          .hasSameElementsAs(requiredExecutions);
    }
Compares the parameterized test suites produced by {@code GeodeParamsRunner} to those
produced by {@code JUnitParamsRunner}, comparing every detail except the annotations on
the parameterized test descriptions. A separate test verifies those annotations.
geode-junit/src/test/java/org/apache/geode/test/junit/runners/GeodeParamsRunnerTest.java