Skip to content

Commit

Permalink
Avoid AbstractMethodError in launcher discovery request
Browse files Browse the repository at this point in the history
  • Loading branch information
mannodermaus committed May 6, 2024
1 parent 6cb3ed9 commit 5219013
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import androidx.annotation.VisibleForTesting
import de.mannodermaus.junit5.internal.LOG_TAG
import de.mannodermaus.junit5.internal.LibcoreAccess
import de.mannodermaus.junit5.internal.runners.notification.ParallelRunNotifier
import org.junit.platform.engine.discovery.MethodSelector
import org.junit.platform.launcher.core.LauncherFactory
import org.junit.runner.Runner
import org.junit.runner.notification.RunNotifier
Expand Down Expand Up @@ -41,12 +42,14 @@ internal class AndroidJUnit5(
/* Private */

private fun generateTestTree(params: AndroidJUnit5RunnerParams): AndroidJUnitPlatformTestTree {
val request = params.createDiscoveryRequest(testClass)
val selectors = params.createSelectors(testClass)
val isIsolatedMethodRun = selectors.size == 1 && selectors.first() is MethodSelector
val request = params.createDiscoveryRequest(selectors)

return AndroidJUnitPlatformTestTree(
testPlan = launcher.discover(request),
testClass = testClass,
isIsolatedMethodRun = request.isIsolatedMethodRun,
isIsolatedMethodRun = isIsolatedMethodRun,
isParallelExecutionEnabled = params.isParallelExecutionEnabled,
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@ import de.mannodermaus.junit5.internal.discovery.GeneratedFilters
import de.mannodermaus.junit5.internal.discovery.ParsedSelectors
import de.mannodermaus.junit5.internal.discovery.PropertiesParser
import de.mannodermaus.junit5.internal.discovery.ShardingFilter
import org.junit.platform.engine.DiscoverySelector
import org.junit.platform.engine.Filter
import org.junit.platform.engine.discovery.MethodSelector
import org.junit.platform.launcher.LauncherDiscoveryRequest
import org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder

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

return AndroidLauncherDiscoveryRequest(
delegate = LauncherDiscoveryRequestBuilder.request()
.selectors(selectors)
.filters(*this.filters.toTypedArray())
.configurationParameters(this.configurationParameters)
.build(),
isIsolatedMethodRun = isIsolatedMethodRun,
)
fun createDiscoveryRequest(selectors: List<DiscoverySelector>): LauncherDiscoveryRequest {
return LauncherDiscoveryRequestBuilder.request()
.selectors(selectors)
.filters(*this.filters.toTypedArray())
.configurationParameters(this.configurationParameters)
.build()
}

val isParallelExecutionEnabled: Boolean
Expand Down

This file was deleted.

0 comments on commit 5219013

Please sign in to comment.