Skip to content

Commit b819306

Browse files
sormurasmarcphilipp
andcommitted
Fix console launcher's --uid option (#4589)
Prior to this commit, unique id selectors weren't included in the list of explicit selectors - which resulted a false error message: ``` Please specify an explicit selector option or use `--scan-class-path` or `--scan-modules` ``` Fixes #4587 --------- Co-authored-by: Marc Philipp <[email protected]> (cherry picked from commit fa3c065)
1 parent df46651 commit b819306

File tree

4 files changed

+21
-1
lines changed

4 files changed

+21
-1
lines changed

documentation/src/docs/asciidoc/release-notes/release-notes-5.13.0.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ repository on GitHub.
5252
the `ConsoleLauncher`. Prior to this release, the created class loader was closed prior
5353
to JVM shutdown hooks being invoked, which caused hooks to fail with a
5454
`ClassNotFoundException` when loading classes during shutdown.
55+
* Fix support of `--uid` and `--select-unique-id` options in the console launcher.
5556

5657
[[release-notes-5.13.0-junit-platform-deprecations-and-breaking-changes]]
5758
==== Deprecations and Breaking Changes

documentation/src/docs/asciidoc/user-guide/running-tests.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -997,7 +997,7 @@ The following discovery selectors are provided out of the box:
997997
| `{NestedClassSelector}` | `{DiscoverySelectors_selectNestedClass}` | `{Select}("<identifier>")` | `--select <identifier>` | `nested-class:com.acme.Foo/Bar`
998998
| `{NestedMethodSelector}` | `{DiscoverySelectors_selectNestedMethod}` | `{Select}("<identifier>")` | `--select <identifier>` | `nested-method:com.acme.Foo/Bar#m`
999999
| `{PackageSelector}` | `{DiscoverySelectors_selectPackage}` | `{SelectPackages}` | `--select-package com.acme.foo` | `package:com.acme.foo`
1000-
| `{UniqueIdSelector}` | `{DiscoverySelectors_selectUniqueId}` | `{Select}("<identifier>")` | `--select <identifier>` | `uid:...`
1000+
| `{UniqueIdSelector}` | `{DiscoverySelectors_selectUniqueId}` | `{Select}("<identifier>")` | `--select-unique-id <identifier>` | `uid:[engine:Foo]/[segment:Bar]`
10011001
| `{UriSelector}` | `{DiscoverySelectors_selectUri}` | `{SelectUris}` | `--select-uri \file:///foo.txt` | `uri:file:///foo.txt`
10021002
|===
10031003

junit-platform-console/src/main/java/org/junit/platform/console/options/TestDiscoveryOptions.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,7 @@ public void setSelectorIdentifiers(List<DiscoverySelectorIdentifier> selectorIde
202202

203203
public List<DiscoverySelector> getExplicitSelectors() {
204204
List<DiscoverySelector> selectors = new ArrayList<>();
205+
selectors.addAll(getSelectedUniqueIds());
205206
selectors.addAll(getSelectedUris());
206207
selectors.addAll(getSelectedFiles());
207208
selectors.addAll(getSelectedDirectories());

platform-tests/src/test/java/org/junit/platform/console/tasks/DiscoveryRequestCreatorTests.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import static org.junit.platform.engine.discovery.DiscoverySelectors.selectIteration;
2323
import static org.junit.platform.engine.discovery.DiscoverySelectors.selectMethod;
2424
import static org.junit.platform.engine.discovery.DiscoverySelectors.selectPackage;
25+
import static org.junit.platform.engine.discovery.DiscoverySelectors.selectUniqueId;
2526
import static org.junit.platform.engine.discovery.DiscoverySelectors.selectUri;
2627

2728
import java.io.File;
@@ -36,6 +37,7 @@
3637
import org.junit.platform.commons.PreconditionViolationException;
3738
import org.junit.platform.console.options.TestDiscoveryOptions;
3839
import org.junit.platform.engine.Filter;
40+
import org.junit.platform.engine.UniqueId;
3941
import org.junit.platform.engine.discovery.ClassNameFilter;
4042
import org.junit.platform.engine.discovery.ClassSelector;
4143
import org.junit.platform.engine.discovery.ClasspathResourceSelector;
@@ -46,6 +48,7 @@
4648
import org.junit.platform.engine.discovery.MethodSelector;
4749
import org.junit.platform.engine.discovery.PackageNameFilter;
4850
import org.junit.platform.engine.discovery.PackageSelector;
51+
import org.junit.platform.engine.discovery.UniqueIdSelector;
4952
import org.junit.platform.engine.discovery.UriSelector;
5053
import org.junit.platform.launcher.LauncherDiscoveryRequest;
5154

@@ -218,6 +221,21 @@ void convertsEngineOptions() {
218221
assertThat(engineFilters.get(1).toString()).contains("excludes", "[engine2]");
219222
}
220223

224+
@Test
225+
void propagatesUniqueIdSelectors() {
226+
options.setSelectedUniqueId(List.of(selectUniqueId("[engine:a]/[1:1]"), selectUniqueId("[engine:b]/[2:2]")));
227+
228+
var request = convert();
229+
var uriSelectors = request.getSelectorsByType(UniqueIdSelector.class);
230+
231+
assertThat(uriSelectors) //
232+
.extracting(UniqueIdSelector::getUniqueId) //
233+
.containsExactly( //
234+
UniqueId.parse("[engine:a]/[1:1]"), //, //
235+
UniqueId.parse("[engine:b]/[2:2]") //
236+
);
237+
}
238+
221239
@Test
222240
void propagatesUriSelectors() {
223241
options.setSelectedUris(List.of(selectUri("a"), selectUri("b")));

0 commit comments

Comments
 (0)