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

      // Each suite child of classDescription describes a parameterized method. Pick a suite.
      Description suite = suiteDescriptionChildrenOf(classDescription).get(0);

      // Each child of the suite describes a test with parameters. Pick a test to exclude.
      List<Description> testsInSuite = suite.getChildren();
      Description testToExclude = testsInSuite.get(0);

      // The runner must execute every test except the ones in the same suite as the excluded test.
      Collection<String> requiredExecutions =
          testDescriptionDescendantsOf(classDescription).stream()
              .filter(d -> !testsInSuite.contains(d))
              .map(Description::getDisplayName)
              .collect(toSet());

      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