code: @Override public void filter(Filter filter) throws NoTestsRemainException {
      List<FrameworkMethod> filteredChildren = ParentRunnerSpy.getFilteredChildren(this);
      // Iterate over a clone so that we can safely mutate the original.
      for (FrameworkMethod child : new ArrayList<>(filteredChildren)) {
        if (!filter.shouldRun(describeChildPlain(child))) {
          filteredChildren.remove(child);
        }
      }
      if (filteredChildren.isEmpty()) {
        throw new NoTestsRemainException();
      }
    }
docs: /*
  ParentRunner's default filter implementation generates a hierarchy of test descriptions,
  applies the filter to those descriptions, and removes any test nodes whose descriptions were
  all filtered out.
  <p>
  This would be problematic for us since we generate non-standard test descriptions which include
  parameter information. This implementation generates "plain" descriptions without parameter
  information and passes those to the filter.