Skip to content

Commit 8953963

Browse files
committed
Add support for UniqueId selectors, post merge fixes
1 parent b2df8c5 commit 8953963

File tree

2 files changed

+10
-11
lines changed

2 files changed

+10
-11
lines changed

src/main/java/co/helmethair/scalatest/ScalatestEngine.java

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import org.junit.platform.engine.discovery.ClassSelector;
1414
import org.junit.platform.engine.discovery.UniqueIdSelector;
1515

16-
import java.util.List;
1716
import java.util.Optional;
1817
import java.util.stream.Collectors;
1918
import java.util.stream.Stream;
@@ -37,8 +36,8 @@ public TestDescriptor discover(EngineDiscoveryRequest discoveryRequest, UniqueId
3736

3837
return runtime.discover(engineDescriptor,
3938
Stream.concat(
40-
discoverClassSelectors(discoveryRequest).stream(),
41-
discoverUniqueIdSelectors(discoveryRequest).stream()
39+
discoverClassSelectors(discoveryRequest),
40+
discoverUniqueIdSelectors(discoveryRequest)
4241
).collect(Collectors.toSet()),
4342
Thread.currentThread().getContextClassLoader());
4443
}
@@ -55,17 +54,16 @@ public void execute(ExecutionRequest executionRequest) {
5554
executor.executeTest(executionRequest.getRootTestDescriptor(), reporter);
5655
}
5756

58-
private List<String> discoverUniqueIdSelectors(EngineDiscoveryRequest discoveryRequest) {
57+
private Stream<String> discoverUniqueIdSelectors(EngineDiscoveryRequest discoveryRequest) {
5958
return discoveryRequest.getSelectorsByType(UniqueIdSelector.class).stream()
6059
.map(this::getSuite)
6160
.filter(Optional::isPresent)
62-
.map(Optional::get)
63-
.collect(Collectors.toList());
61+
.map(Optional::get);
6462
}
6563

6664
private Optional<String> getSuite(UniqueIdSelector u) {
6765
UniqueId uniqueId = u.getUniqueId();
68-
if (uniqueId.hasPrefix(UniqueId.forEngine(ID))) {
66+
if (uniqueId.hasPrefix(UniqueId.forEngine(ID)) && uniqueId.getSegments().size() > 1) {
6967
UniqueId.Segment segment = uniqueId.getSegments().get(1);
7068
if (SUITE_TYPE.equals(segment.getType())) {
7169
return Optional.of(segment.getValue());
@@ -74,9 +72,8 @@ private Optional<String> getSuite(UniqueIdSelector u) {
7472
return Optional.empty();
7573
}
7674

77-
private List<String> discoverClassSelectors(EngineDiscoveryRequest discoveryRequest) {
75+
private Stream<String> discoverClassSelectors(EngineDiscoveryRequest discoveryRequest) {
7876
return discoveryRequest.getSelectorsByType(ClassSelector.class).stream()
79-
.map(ClassSelector::getClassName)
80-
.collect(Collectors.toList());
77+
.map(ClassSelector::getClassName);
8178
}
8279
}

src/test/java/co/helmethair/scalatest/UniqueIdTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@
99
public class UniqueIdTest implements TestHelpers {
1010

1111
@ParameterizedTest
12-
@CsvSource({"[engine:scalatest]/[suite:tests.NestedTest], 2, 0",
12+
@CsvSource({
13+
"[engine:scalatest], 0, 0",
14+
"[engine:scalatest]/[suite:tests.NestedTest], 2, 0",
1315
// For now, it does not support really executing the selected test, it will execute the whole suite
1416
"[engine:scalatest]/[suite:tests.NestedTest]/[test:nested test1], 2, 0",
1517
"[engine:scalatest]/[foo:tests.NestedTest], 0, 0",

0 commit comments

Comments
 (0)