Skip to content

Conversation

sbrannen
Copy link
Member

@sbrannen sbrannen commented Aug 22, 2025

Prior to this commit, it was possible to select multiple classes by invoking selectClass(<class>) multiple times; however, it could become a bit verbose as in the following example.

EngineTestKit.engine("junit-jupiter")
   .selectors(
      selectClass(TestClass1A.class),
      selectClass(TestClass1B.class),
      selectClass(TestClass2A.class),
      selectClass(TestClass2B.class))

To improve the programming model for users, this commit introduces multiple selectClasses(...) and selectClassesByName(...) variants in DiscoverySelectors. The following example demonstrates use of the new selectClasses(Class<?>...) varargs variant.

EngineTestKit.engine("junit-jupiter")
   .selectors(
      selectClasses(
         TestClass1A.class,
         TestClass1B.class,
         TestClass2A.class,
         TestClass2B.class))

In addition, the AdditionalDiscoverySelectors utility used by the @Suite engine no longer needs to implement its own selectClasses(...) utilities.

Closes gh-4860

Prior to this commit, it was possible to select multiple classes by
invoking selectClass(<class>) multiple times; however, it could become
a bit verbose as in the following example.

EngineTestKit.engine("junit-jupiter")
   .selectors(
      selectClass(TestClass1A.class),
      selectClass(TestClass1B.class),
      selectClass(TestClass2A.class),
      selectClass(TestClass2B.class))

To improve the programming model for users, this commit introduces
multiple selectClasses(...) and selectClassesByName(...) variants in
DiscoverySelectors. The following examples demonstrates use of the new
selectClasses(Class<?>...) varargs variant.

EngineTestKit.engine("junit-jupiter")
   .selectors(
      selectClasses(
         TestClass1A.class,
         TestClass1B.class,
         TestClass2A.class,
         TestClass2B.class))

In addition, the AdditionalDiscoverySelectors utility used by the
@⁠Suite engine no longer needs to implement its own selectClasses(...)
utilities.

Closes junit-teamgh-4860
@sbrannen sbrannen force-pushed the issues/4860-DiscoverySelectors-selectClasses branch from 324a187 to dbad78a Compare August 22, 2025 17:12
Copy link
Member

@sormuras sormuras left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, especially with the List<S> return type.

@sbrannen sbrannen force-pushed the issues/4860-DiscoverySelectors-selectClasses branch from dbad78a to bb48ba4 Compare August 23, 2025 12:18
@sbrannen sbrannen merged commit 0527706 into junit-team:main Aug 23, 2025
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Introduce DiscoverySelectors.selectClasses*() variants
2 participants