1 package org.apache.maven.surefire.junitplatform;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import static org.junit.platform.engine.discovery.DiscoverySelectors.selectClass;
23 import static org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder.request;
24
25 import org.apache.maven.surefire.api.util.ScannerFilter;
26 import org.junit.platform.engine.Filter;
27 import org.junit.platform.launcher.Launcher;
28 import org.junit.platform.launcher.LauncherDiscoveryRequest;
29 import org.junit.platform.launcher.TestPlan;
30
31
32
33
34 final class TestPlanScannerFilter
35 implements ScannerFilter
36 {
37
38 private final Launcher launcher;
39
40 private final Filter<?>[] includeAndExcludeFilters;
41
42 TestPlanScannerFilter( Launcher launcher, Filter<?>[] includeAndExcludeFilters )
43 {
44 this.launcher = launcher;
45 this.includeAndExcludeFilters = includeAndExcludeFilters;
46 }
47
48 @Override
49 @SuppressWarnings( "rawtypes" )
50 public boolean accept( Class testClass )
51 {
52 LauncherDiscoveryRequest discoveryRequest = request()
53 .selectors( selectClass( testClass.getName() ) )
54 .filters( includeAndExcludeFilters ).build();
55
56 TestPlan testPlan = launcher.discover( discoveryRequest );
57
58 return testPlan.containsTests();
59 }
60 }