3535import org .junit .jupiter .engine .descriptor .TestMethodTestDescriptor ;
3636import org .junit .jupiter .engine .descriptor .TestTemplateInvocationTestDescriptor ;
3737import org .junit .jupiter .engine .descriptor .TestTemplateTestDescriptor ;
38+ import org .junit .jupiter .engine .discovery .predicates .IsNestedTestClass ;
39+ import org .junit .jupiter .engine .discovery .predicates .IsTestClassWithTests ;
3840import org .junit .jupiter .engine .discovery .predicates .IsTestFactoryMethod ;
3941import org .junit .jupiter .engine .discovery .predicates .IsTestMethod ;
4042import org .junit .jupiter .engine .discovery .predicates .IsTestTemplateMethod ;
@@ -57,6 +59,8 @@ class MethodSelectorResolver implements SelectorResolver {
5759
5860 private static final Logger logger = LoggerFactory .getLogger (MethodSelectorResolver .class );
5961 private static final MethodFinder methodFinder = new MethodFinder ();
62+ private static final Predicate <Class <?>> testClassPredicate = new IsTestClassWithTests ().or (
63+ new IsNestedTestClass ());
6064
6165 protected final JupiterConfiguration configuration ;
6266
@@ -66,15 +70,20 @@ class MethodSelectorResolver implements SelectorResolver {
6670
6771 @ Override
6872 public Resolution resolve (MethodSelector selector , Context context ) {
69- return resolve (context , emptyList (), selector .getJavaClass (), selector . getJavaMethod () );
73+ return resolve (context , emptyList (), selector .getJavaClass (), selector :: getJavaMethod );
7074 }
7175
7276 @ Override
7377 public Resolution resolve (NestedMethodSelector selector , Context context ) {
74- return resolve (context , selector .getEnclosingClasses (), selector .getNestedClass (), selector . getMethod () );
78+ return resolve (context , selector .getEnclosingClasses (), selector .getNestedClass (), selector :: getMethod );
7579 }
7680
77- private Resolution resolve (Context context , List <Class <?>> enclosingClasses , Class <?> testClass , Method method ) {
81+ private Resolution resolve (Context context , List <Class <?>> enclosingClasses , Class <?> testClass ,
82+ Supplier <Method > methodSupplier ) {
83+ if (!testClassPredicate .test (testClass )) {
84+ return unresolved ();
85+ }
86+ Method method = methodSupplier .get ();
7887 // @formatter:off
7988 Set <Match > matches = Arrays .stream (MethodType .values ())
8089 .map (methodType -> methodType .resolve (enclosingClasses , testClass , method , context , configuration ))
0 commit comments