27
27
import static java .util .stream .Collectors .toList ;
28
28
import static org .apache .maven .surefire .booter .ProviderParameterNames .TESTNG_EXCLUDEDGROUPS_PROP ;
29
29
import static org .apache .maven .surefire .booter .ProviderParameterNames .TESTNG_GROUPS_PROP ;
30
+ import static org .apache .maven .surefire .report .ConsoleOutputCapture .startCapture ;
31
+ import static org .apache .maven .surefire .util .TestsToRun .fromClass ;
30
32
import static org .junit .platform .commons .util .StringUtils .isBlank ;
31
33
import static org .junit .platform .engine .discovery .DiscoverySelectors .selectClass ;
32
34
import static org .junit .platform .launcher .core .LauncherDiscoveryRequestBuilder .request ;
44
46
45
47
import org .apache .maven .surefire .providerapi .AbstractProvider ;
46
48
import org .apache .maven .surefire .providerapi .ProviderParameters ;
47
- import org .apache .maven .surefire .report .ConsoleOutputCapture ;
48
49
import org .apache .maven .surefire .report .ConsoleOutputReceiver ;
49
50
import org .apache .maven .surefire .report .ReporterException ;
50
51
import org .apache .maven .surefire .report .ReporterFactory ;
@@ -104,22 +105,35 @@ public Iterable<Class<?>> getSuites()
104
105
public RunResult invoke ( Object forkTestSet )
105
106
throws TestSetFailedException , ReporterException
106
107
{
107
- if ( forkTestSet instanceof TestsToRun )
108
- {
109
- return invokeAllTests ( (TestsToRun ) forkTestSet );
110
- }
111
- else if ( forkTestSet instanceof Class )
112
- {
113
- return invokeAllTests ( TestsToRun .fromClass ( (Class <?>) forkTestSet ) );
114
- }
115
- else if ( forkTestSet == null )
108
+ ReporterFactory reporterFactory = parameters .getReporterFactory ();
109
+ final RunResult runResult ;
110
+ try
116
111
{
117
- return invokeAllTests ( scanClasspath () );
112
+ RunListener runListener = reporterFactory .createReporter ();
113
+ startCapture ( ( ConsoleOutputReceiver ) runListener );
114
+ if ( forkTestSet instanceof TestsToRun )
115
+ {
116
+ invokeAllTests ( (TestsToRun ) forkTestSet , runListener );
117
+ }
118
+ else if ( forkTestSet instanceof Class )
119
+ {
120
+ invokeAllTests ( fromClass ( ( Class <?> ) forkTestSet ), runListener );
121
+ }
122
+ else if ( forkTestSet == null )
123
+ {
124
+ invokeAllTests ( scanClasspath (), runListener );
125
+ }
126
+ else
127
+ {
128
+ throw new IllegalArgumentException (
129
+ "Unexpected value of forkTestSet: " + forkTestSet );
130
+ }
118
131
}
119
- else
132
+ finally
120
133
{
121
- throw new IllegalArgumentException ( "Unexpected value of forkTestSet: " + forkTestSet );
134
+ runResult = reporterFactory . close ( );
122
135
}
136
+ return runResult ;
123
137
}
124
138
125
139
private TestsToRun scanClasspath ()
@@ -130,22 +144,10 @@ private TestsToRun scanClasspath()
130
144
return parameters .getRunOrderCalculator ().orderTestClasses ( scannedClasses );
131
145
}
132
146
133
- private RunResult invokeAllTests ( TestsToRun testsToRun )
147
+ private void invokeAllTests ( TestsToRun testsToRun , RunListener runListener )
134
148
{
135
- RunResult runResult ;
136
- ReporterFactory reporterFactory = parameters .getReporterFactory ();
137
- try
138
- {
139
- RunListener runListener = reporterFactory .createReporter ();
140
- ConsoleOutputCapture .startCapture ( (ConsoleOutputReceiver ) runListener );
141
- LauncherDiscoveryRequest discoveryRequest = buildLauncherDiscoveryRequest ( testsToRun );
142
- launcher .execute ( discoveryRequest , new RunListenerAdapter ( runListener ) );
143
- }
144
- finally
145
- {
146
- runResult = reporterFactory .close ();
147
- }
148
- return runResult ;
149
+ LauncherDiscoveryRequest discoveryRequest = buildLauncherDiscoveryRequest ( testsToRun );
150
+ launcher .execute ( discoveryRequest , new RunListenerAdapter ( runListener ) );
149
151
}
150
152
151
153
private LauncherDiscoveryRequest buildLauncherDiscoveryRequest ( TestsToRun testsToRun )
0 commit comments