Skip to content

Commit f2bfb7b

Browse files
authored
Provide configuration parameters to instrumentation tests (#232)
Include them in the discovery request created by the JUnit 5 Runner. This allows auto-detection of extensions, for example. Reuse the same mechanism for parsing as exercised for system properties & env vars, using the PropertiesParser to split a comma-separated string of key-value pairs.
1 parent 89d6946 commit f2bfb7b

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

instrumentation/runner/src/main/java/de/mannodermaus/junit5/AndroidJUnit5.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ public final class AndroidJUnit5 extends Runner {
4646

4747
private static final String ARG_ENVIRONMENT_VARIABLES = "environmentVariables";
4848
private static final String ARG_SYSTEM_PROPERTIES = "systemProperties";
49+
private static final String ARG_CONFIGURATION_PARAMETERS = "configurationParameters";
4950

5051
private final Class<?> testClass;
5152
private final Launcher launcher = LauncherFactory.create();
@@ -84,6 +85,15 @@ private static AndroidJUnit5RunnerParams createRunnerParams(Class<?> testClass)
8485
systemProperties = Collections.emptyMap();
8586
}
8687

88+
// Parse configuration parameters
89+
Map<String, String> configurationParameters;
90+
String configurationParametersArgument = arguments.getString(ARG_CONFIGURATION_PARAMETERS);
91+
if (configurationParametersArgument != null) {
92+
configurationParameters = PropertiesParser.fromString(configurationParametersArgument);
93+
} else {
94+
configurationParameters = Collections.emptyMap();
95+
}
96+
8797
// Parse the selectors to use from what's handed to the runner.
8898
List<DiscoverySelector> selectors = ParsedSelectors.fromBundle(testClass, arguments);
8999

@@ -93,7 +103,12 @@ private static AndroidJUnit5RunnerParams createRunnerParams(Class<?> testClass)
93103
// the filters to apply by the AndroidJUnit5 runner.
94104
List<Filter<?>> filters = GeneratedFilters.fromContext(instrumentation.getContext());
95105

96-
return new AndroidJUnit5RunnerParams(selectors, filters, environmentVariables, systemProperties);
106+
return new AndroidJUnit5RunnerParams(selectors,
107+
filters,
108+
environmentVariables,
109+
systemProperties,
110+
configurationParameters
111+
);
97112
}
98113

99114
@Override

instrumentation/runner/src/main/java/de/mannodermaus/junit5/AndroidJUnit5RunnerParams.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,14 @@ data class AndroidJUnit5RunnerParams(
99
private val selectors: List<DiscoverySelector> = emptyList(),
1010
private val filters: List<Filter<*>> = emptyList(),
1111
val environmentVariables: Map<String, String> = emptyMap(),
12-
val systemProperties: Map<String, String> = emptyMap()
12+
val systemProperties: Map<String, String> = emptyMap(),
13+
private val configurationParameters: Map<String, String> = emptyMap()
1314
) {
1415

1516
fun createDiscoveryRequest(): LauncherDiscoveryRequest =
1617
LauncherDiscoveryRequestBuilder.request()
1718
.selectors(this.selectors)
1819
.filters(*this.filters.toTypedArray())
20+
.configurationParameters(this.configurationParameters)
1921
.build()
2022
}

0 commit comments

Comments
 (0)