Skip to content

Commit 33448f4

Browse files
committed
Add le tests for the new config param
1 parent 5a97fa4 commit 33448f4

File tree

3 files changed

+43
-12
lines changed

3 files changed

+43
-12
lines changed

instrumentation/runner/src/main/kotlin/de/mannodermaus/junit5/AndroidJUnitFrameworkBuilder.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,13 @@ public open class AndroidJUnitFrameworkBuilder internal constructor() : RunnerBu
4848
}
4949

5050
// One-time parsing setup for runner params, taken from instrumentation arguments
51-
private val params =
51+
private val params by lazy {
5252
JUnitFrameworkRunnerParams.create().also { params ->
5353
// Apply all environment variables & system properties to the running process
5454
params.registerEnvironmentVariables()
5555
params.registerSystemProperties()
5656
}
57+
}
5758

5859
@Throws(Throwable::class)
5960
override fun runnerForClass(testClass: Class<*>): Runner? {

instrumentation/runner/src/test/kotlin/de/mannodermaus/junit5/internal/runners/AndroidJUnitFrameworkTests.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,11 @@ class AndroidJUnitFrameworkTests {
8181
val resultRef = AtomicReference<CollectingRunListener.Results>()
8282
val args = buildArgs(shardingConfig)
8383
withMockedInstrumentation(args) {
84-
val runner = AndroidJUnitFramework(Sample_NormalTests::class.java)
84+
val runner =
85+
AndroidJUnitFramework(
86+
testClass = Sample_NormalTests::class.java,
87+
params = JUnitFrameworkRunnerParams(),
88+
)
8589
val listener = CollectingRunListener()
8690
val notifier = RunNotifier().also { it.addListener(listener) }
8791
runner.run(notifier)

plugin/android-junit5/src/test/kotlin/de/mannodermaus/gradle/plugins/junit5/plugin/InstrumentationSupportTests.kt

Lines changed: 36 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import com.google.common.truth.Truth.assertThat
44
import de.mannodermaus.Libraries.Instrumentation
55
import de.mannodermaus.Libraries.JUnit
66
import de.mannodermaus.Libraries.JUnit.JUnit5
7+
import de.mannodermaus.gradle.plugins.junit5.dsl.UnsupportedDeviceBehavior
78
import de.mannodermaus.gradle.plugins.junit5.extensions.android
89
import de.mannodermaus.gradle.plugins.junit5.internal.artifact
910
import de.mannodermaus.gradle.plugins.junit5.internal.config.ANDROID_JUNIT5_RUNNER_BUILDER_CLASS
@@ -79,6 +80,31 @@ internal class InstrumentationSupportTests {
7980

8081
/* Configuration parameters */
8182

83+
@Test
84+
fun `always includes config param for unsupported device behavior`() {
85+
project.addJUnit(JUnit5, "androidTest")
86+
project.evaluate()
87+
88+
val runnerArgs =
89+
project.android.defaultConfig.testInstrumentationRunnerArguments[
90+
"configurationParameters"]
91+
assertThat(runnerArgs).contains("de.mannodermaus.junit.unsupported.behavior=skip")
92+
}
93+
94+
@Test
95+
fun `can configure the unsupported device behavior via dsl`() {
96+
project.addJUnit(JUnit5, "androidTest")
97+
project.junitPlatform.instrumentationTests.behaviorForUnsupportedDevices.set(
98+
UnsupportedDeviceBehavior.Fail
99+
)
100+
project.evaluate()
101+
102+
val runnerArgs =
103+
project.android.defaultConfig.testInstrumentationRunnerArguments[
104+
"configurationParameters"]
105+
assertThat(runnerArgs).contains("de.mannodermaus.junit.unsupported.behavior=fail")
106+
}
107+
82108
@Test
83109
fun `copy configuration parameters to test runner arguments`() {
84110
project.addJUnit(JUnit5, "androidTest")
@@ -88,11 +114,11 @@ internal class InstrumentationSupportTests {
88114
}
89115
project.evaluate()
90116

91-
assertThat(
92-
project.android.defaultConfig.testInstrumentationRunnerArguments[
93-
"configurationParameters"]
94-
)
95-
.isEqualTo("my.parameter1=true,my.parameter2=1234")
117+
val runnerArgs =
118+
project.android.defaultConfig.testInstrumentationRunnerArguments[
119+
"configurationParameters"]
120+
assertThat(runnerArgs).contains("my.parameter1=true")
121+
assertThat(runnerArgs).contains("my.parameter2=1234")
96122
}
97123

98124
@Test
@@ -105,11 +131,11 @@ internal class InstrumentationSupportTests {
105131
}
106132
project.evaluate()
107133

108-
assertThat(
109-
project.android.defaultConfig.testInstrumentationRunnerArguments[
110-
"configurationParameters"]
111-
)
112-
.isNull()
134+
val runnerArgs =
135+
project.android.defaultConfig.testInstrumentationRunnerArguments[
136+
"configurationParameters"]
137+
assertThat(runnerArgs).doesNotContain("my.parameter1=true")
138+
assertThat(runnerArgs).doesNotContain("my.parameter2=1234")
113139
}
114140

115141
/* Dependencies */

0 commit comments

Comments
 (0)