private void registerOptOuts(final Class<?> classWithOptOuts,
                                 final Optional<GraphProvider.Descriptor> graphProviderDescriptor,
                                 final TraversalEngine.Type traversalEngineType) throws InitializationError {
        // don't get why getAnnotationsByType() refuses to pick up OptOuts on the superclass. doing it manually and
        // only for the immediate superclass for now
        final List<Graph.OptOut> optOuts = getAllOptOuts(classWithOptOuts);

        if (!optOuts.isEmpty()) {
            // validate annotation - test class and reason must be set
            if (!optOuts.stream().allMatch(ignore -> ignore.test() != null && ignore.reason() != null && !ignore.reason().isEmpty()))
                throw new InitializationError("Check @IgnoreTest annotations - all must have a 'test' and 'reason' set");

            try {
                final Graph.OptOut[] oos = new Graph.OptOut[optOuts.size()];
                optOuts.toArray(oos);
                filter(new OptOutTestFilter(oos, graphProviderDescriptor, traversalEngineType));
            } catch (NoTestsRemainException ex) {
                throw new InitializationError(ex);
            }
        }
    }
Constructs a Gremlin Test Suite implementation.

@param klass               Required for JUnit Suite construction
@param builder             Required for JUnit Suite construction
@param testsToExecute      The list of tests to execute
@param testsToEnforce      The list of tests to "enforce" such that a check is made to ensure that in this list,
                           there exists an implementation in the testsToExecute (use {@code null} for no
                           enforcement).
@param gremlinFlavorSuite  Ignore validation of {@link Graph.OptIn} annotations which is typically reserved for structure tests
@param traversalEngineType The {@link TraversalEngine.Type} to enforce on this suite
gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/AbstractGremlinSuite.java