3636import org .junit .platform .launcher .TestPlan ;
3737import org .junit .platform .launcher .core .LauncherConfig ;
3838import org .junit .platform .launcher .core .LauncherDiscoveryRequestBuilder ;
39+ import org .junit .platform .launcher .core .LauncherExecutionRequestBuilder ;
3940import org .junit .platform .launcher .core .LauncherFactory ;
4041import org .junit .platform .launcher .listeners .SummaryGeneratingListener ;
4142import org .junit .platform .launcher .listeners .TestExecutionSummary ;
@@ -119,8 +120,8 @@ void launcherConfig() {
119120
120121 @ Test
121122 @ SuppressWarnings ("unused" )
122- void cancellation () {
123- // tag::cancellation[]
123+ void cancellationDirect () {
124+ // tag::cancellation-direct []
124125 CancellationToken cancellationToken = CancellationToken .create (); // <1>
125126
126127 TestExecutionListener failFastListener = new TestExecutionListener () {
@@ -132,24 +133,92 @@ public void executionFinished(TestIdentifier identifier, TestExecutionResult res
132133 }
133134 };
134135
135- // end::cancellation[]
136+ // end::cancellation-direct []
136137 // @formatter:off
137- // tag::cancellation[]
138+ // tag::cancellation-direct []
138139 LauncherExecutionRequest executionRequest = LauncherDiscoveryRequestBuilder .request ()
139140 .selectors (selectClass (MyTestClass .class ))
140141 .forExecution ()
142+ // end::cancellation-direct[]
143+ // @formatter:on
144+ // tag::cancellation-direct[]
141145 .cancellationToken (cancellationToken ) // <3>
142146 .listeners (failFastListener ) // <4>
143147 .build ();
144- // end::cancellation[]
148+
149+ try (LauncherSession session = LauncherFactory .openSession ()) {
150+ session .getLauncher ().execute (executionRequest ); // <5>
151+ }
152+ // end::cancellation-direct[]
153+ }
154+
155+ @ Test
156+ @ SuppressWarnings ("unused" )
157+ void cancellationFromDiscoveryRequest () {
158+ CancellationToken cancellationToken = CancellationToken .create ();
159+
160+ TestExecutionListener failFastListener = new TestExecutionListener () {
161+ @ Override
162+ public void executionFinished (TestIdentifier identifier , TestExecutionResult result ) {
163+ if (result .getStatus () == FAILED ) {
164+ cancellationToken .cancel ();
165+ }
166+ }
167+ };
168+
145169 // @formatter:off
146- // tag::cancellation[]
170+ // tag::cancellation-discovery-request[]
171+ LauncherDiscoveryRequest discoveryRequest = LauncherDiscoveryRequestBuilder .request ()
172+ .selectors (selectClass (MyTestClass .class ))
173+ .build (); // <1>
174+ // end::cancellation-discovery-request[]
175+ // @formatter:on
176+ // tag::cancellation-discovery-request[]
177+
178+ LauncherExecutionRequest executionRequest = LauncherExecutionRequestBuilder .request (discoveryRequest ) // <2>
179+ .cancellationToken (cancellationToken ) // <3>
180+ .listeners (failFastListener ) // <4>
181+ .build ();
147182
148183 try (LauncherSession session = LauncherFactory .openSession ()) {
149184 session .getLauncher ().execute (executionRequest ); // <5>
150185 }
151- // end::cancellation[]
186+ // end::cancellation-discovery-request[]
187+ }
188+
189+ @ Test
190+ @ SuppressWarnings ("unused" )
191+ void cancellationFromTestPlan () {
192+ CancellationToken cancellationToken = CancellationToken .create ();
193+
194+ TestExecutionListener failFastListener = new TestExecutionListener () {
195+ @ Override
196+ public void executionFinished (TestIdentifier identifier , TestExecutionResult result ) {
197+ if (result .getStatus () == FAILED ) {
198+ cancellationToken .cancel ();
199+ }
200+ }
201+ };
202+
203+ // @formatter:off
204+ // tag::cancellation-test-plan[]
205+ LauncherDiscoveryRequest discoveryRequest = LauncherDiscoveryRequestBuilder .request ()
206+ .selectors (selectClass (MyTestClass .class ))
207+ .build (); // <1>
208+ // end::cancellation-test-plan[]
152209 // @formatter:on
210+ // tag::cancellation-test-plan[]
211+
212+ try (LauncherSession session = LauncherFactory .openSession ()) {
213+ var launcher = session .getLauncher ();
214+ TestPlan testPlan = launcher .discover (discoveryRequest ); // <2>
215+ LauncherExecutionRequest executionRequest = LauncherExecutionRequestBuilder .request (testPlan ) // <3>
216+ .cancellationToken (cancellationToken ) // <4>
217+ .listeners (failFastListener ) // <5>
218+ .build ();
219+ launcher .execute (executionRequest ); // <6>
220+ }
221+ // end::cancellation-test-plan[]
153222 }
154223
155224}
0 commit comments