Skip to content

Commit 5219013

Browse files
committed
Avoid AbstractMethodError in launcher discovery request
1 parent 6cb3ed9 commit 5219013

File tree

3 files changed

+16
-27
lines changed

3 files changed

+16
-27
lines changed

instrumentation/runner/src/main/kotlin/de/mannodermaus/junit5/internal/runners/AndroidJUnit5.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import androidx.annotation.VisibleForTesting
66
import de.mannodermaus.junit5.internal.LOG_TAG
77
import de.mannodermaus.junit5.internal.LibcoreAccess
88
import de.mannodermaus.junit5.internal.runners.notification.ParallelRunNotifier
9+
import org.junit.platform.engine.discovery.MethodSelector
910
import org.junit.platform.launcher.core.LauncherFactory
1011
import org.junit.runner.Runner
1112
import org.junit.runner.notification.RunNotifier
@@ -41,12 +42,14 @@ internal class AndroidJUnit5(
4142
/* Private */
4243

4344
private fun generateTestTree(params: AndroidJUnit5RunnerParams): AndroidJUnitPlatformTestTree {
44-
val request = params.createDiscoveryRequest(testClass)
45+
val selectors = params.createSelectors(testClass)
46+
val isIsolatedMethodRun = selectors.size == 1 && selectors.first() is MethodSelector
47+
val request = params.createDiscoveryRequest(selectors)
4548

4649
return AndroidJUnitPlatformTestTree(
4750
testPlan = launcher.discover(request),
4851
testClass = testClass,
49-
isIsolatedMethodRun = request.isIsolatedMethodRun,
52+
isIsolatedMethodRun = isIsolatedMethodRun,
5053
isParallelExecutionEnabled = params.isParallelExecutionEnabled,
5154
)
5255
}

instrumentation/runner/src/main/kotlin/de/mannodermaus/junit5/internal/runners/AndroidJUnit5RunnerParams.kt

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ import de.mannodermaus.junit5.internal.discovery.GeneratedFilters
66
import de.mannodermaus.junit5.internal.discovery.ParsedSelectors
77
import de.mannodermaus.junit5.internal.discovery.PropertiesParser
88
import de.mannodermaus.junit5.internal.discovery.ShardingFilter
9+
import org.junit.platform.engine.DiscoverySelector
910
import org.junit.platform.engine.Filter
10-
import org.junit.platform.engine.discovery.MethodSelector
11+
import org.junit.platform.launcher.LauncherDiscoveryRequest
1112
import org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder
1213

1314
internal data class AndroidJUnit5RunnerParams(
@@ -17,18 +18,16 @@ internal data class AndroidJUnit5RunnerParams(
1718
val systemProperties: Map<String, String> = emptyMap(),
1819
private val configurationParameters: Map<String, String> = emptyMap()
1920
) {
20-
fun createDiscoveryRequest(testClass: Class<*>): AndroidLauncherDiscoveryRequest {
21-
val selectors = ParsedSelectors.fromBundle(testClass, arguments)
22-
val isIsolatedMethodRun = selectors.size == 1 && selectors.first() is MethodSelector
21+
fun createSelectors(testClass: Class<*>): List<DiscoverySelector> {
22+
return ParsedSelectors.fromBundle(testClass, arguments)
23+
}
2324

24-
return AndroidLauncherDiscoveryRequest(
25-
delegate = LauncherDiscoveryRequestBuilder.request()
26-
.selectors(selectors)
27-
.filters(*this.filters.toTypedArray())
28-
.configurationParameters(this.configurationParameters)
29-
.build(),
30-
isIsolatedMethodRun = isIsolatedMethodRun,
31-
)
25+
fun createDiscoveryRequest(selectors: List<DiscoverySelector>): LauncherDiscoveryRequest {
26+
return LauncherDiscoveryRequestBuilder.request()
27+
.selectors(selectors)
28+
.filters(*this.filters.toTypedArray())
29+
.configurationParameters(this.configurationParameters)
30+
.build()
3231
}
3332

3433
val isParallelExecutionEnabled: Boolean

instrumentation/runner/src/main/kotlin/de/mannodermaus/junit5/internal/runners/AndroidLauncherDiscoveryRequest.kt

Lines changed: 0 additions & 13 deletions
This file was deleted.

0 commit comments

Comments
 (0)