Skip to content

Commit

Permalink
Add --test-targets-always-run (#421)
Browse files Browse the repository at this point in the history
  • Loading branch information
bootstraponline committed Dec 3, 2018
1 parent b28a17f commit 42eb2dd
Show file tree
Hide file tree
Showing 8 changed files with 60 additions and 7 deletions.
2 changes: 1 addition & 1 deletion test_runner/src/main/kotlin/ftl/args/AndroidArgs.kt
Expand Up @@ -65,7 +65,7 @@ class AndroidArgs(
override val testShards = cli?.testShards ?: flank.testShards
override val repeatTests = cli?.repeatTests ?: flank.repeatTests
override val smartFlankGcsPath = flank.smartFlankGcsPath
override val testTargetsAlwaysRun = flank.testTargetsAlwaysRun
override val testTargetsAlwaysRun = cli?.testTargetsAlwaysRun ?: flank.testTargetsAlwaysRun

// computed properties not specified in yaml
override val testShardChunks: List<List<String>> by lazy {
Expand Down
2 changes: 1 addition & 1 deletion test_runner/src/main/kotlin/ftl/args/IosArgs.kt
Expand Up @@ -50,7 +50,7 @@ class IosArgs(
override val testShards = cli?.testShards ?: flank.testShards
override val repeatTests = cli?.repeatTests ?: flank.repeatTests
override val smartFlankGcsPath = flank.smartFlankGcsPath
override val testTargetsAlwaysRun = flank.testTargetsAlwaysRun
override val testTargetsAlwaysRun = cli?.testTargetsAlwaysRun ?: flank.testTargetsAlwaysRun

private val iosFlank = iosFlankYml.flank
val testTargets = iosFlank.testTargets
Expand Down
Expand Up @@ -50,7 +50,7 @@ class AndroidRunCommand : Runnable {
|The given path may be in the local filesystem or in Google Cloud Storage using a URL beginning with gs://."""])
var test: String? = null

@Option(names = ["--test-targets"], description = ["""A list of one or more test target filters to apply
@Option(names = ["--test-targets"], split = ",", description = ["""A list of one or more test target filters to apply
(default: run all test targets). Each target filter must be fully qualified with the package name, class name,
or test annotation desired. Any test filter supported by am instrument -e … is supported.
See https://developer.android.com/reference/android/support/test/runner/AndroidJUnitRunner for more
Expand Down Expand Up @@ -154,4 +154,8 @@ class AndroidRunCommand : Runnable {

@Option(names = ["--repeat-tests"], description = ["""The amount of times to repeat the test executions."""])
var repeatTests: Int? = null

@Option(names = ["--test-targets-always-run"], split = ",", description = ["""A list of one or more test methods to always run
|first in every shard."""])
var testTargetsAlwaysRun: List<String>? = null
}
Expand Up @@ -73,4 +73,8 @@ class IosRunCommand : Runnable {

@Option(names = ["--repeat-tests"], description = ["""The amount of times to repeat the test executions."""])
var repeatTests: Int? = null

@Option(names = ["--test-targets-always-run"], split = ",", description = ["""A list of one or more test methods to always run
|first in every shard."""])
var testTargetsAlwaysRun: List<String>? = null
}
22 changes: 18 additions & 4 deletions test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt
Expand Up @@ -322,21 +322,22 @@ AndroidArgs
val cli = AndroidRunCommand()
val testTarget = "class com.foo.ClassName"

CommandLine(cli).parse("--test-targets", testTarget)
CommandLine(cli).parse("--test-targets=$testTarget,$testTarget")

val yaml = """
gcloud:
app: $appApk
test: $testApk
test-targets:
- class com.example.app.ExampleUiTest#testPasses
- class com.example.app.ExampleUiTest#testPasses
- class com.example.app.ExampleUiTest#testFails
"""
assertThat(AndroidArgs.load(yaml).testTargets.size).isEqualTo(2)
assertThat(AndroidArgs.load(yaml).testTargets.size).isEqualTo(3)

val androidArgs = AndroidArgs.load(yaml, cli)
assertThat(androidArgs.testTargets.size).isEqualTo(1)
assertThat(androidArgs.testTargets).isEqualTo(listOf(testTarget))
assertThat(androidArgs.testTargets.size).isEqualTo(2)
assertThat(androidArgs.testTargets).isEqualTo(listOf(testTarget, testTarget))
}

@Test
Expand Down Expand Up @@ -655,4 +656,17 @@ AndroidArgs
assertThat(AndroidArgs.load(yaml).repeatTests).isEqualTo(2)
assertThat(AndroidArgs.load(yaml, cli).repeatTests).isEqualTo(3)
}

@Test
fun cli_testTargetsAlwaysRun() {
val cli = AndroidRunCommand()
CommandLine(cli).parse("--test-targets-always-run=com.A,com.B")

val yaml = """
gcloud:
app: $appApk
test: $testApk
"""
assertThat(AndroidArgs.load(yaml, cli).testTargetsAlwaysRun).isEqualTo(arrayListOf("com.A", "com.B"))
}
}
13 changes: 13 additions & 0 deletions test_runner/src/test/kotlin/ftl/args/IosArgsTest.kt
Expand Up @@ -375,4 +375,17 @@ IosArgs
assertThat(IosArgs.load(yaml).repeatTests).isEqualTo(2)
assertThat(IosArgs.load(yaml, cli).repeatTests).isEqualTo(3)
}

@Test
fun cli_testTargetsAlwaysRun() {
val cli = IosRunCommand()
CommandLine(cli).parse("--test-targets-always-run=com.A,com.B")

val yaml = """
gcloud:
test: $testPath
xctestrun-file: $xctestrunFile
"""
assertThat(IosArgs.load(yaml, cli).testTargetsAlwaysRun).isEqualTo(arrayListOf("com.A", "com.B"))
}
}
Expand Up @@ -79,6 +79,7 @@ class AndroidRunCommandTest {
assertThat(cmd.resultsHistoryName).isNull()
assertThat(cmd.testShards).isNull()
assertThat(cmd.repeatTests).isNull()
assertThat(cmd.testTargetsAlwaysRun).isNull()
}

@Test
Expand Down Expand Up @@ -255,4 +256,12 @@ class AndroidRunCommandTest {

assertThat(cmd.repeatTests).isEqualTo(3)
}

@Test
fun testTargetsAlwaysRun_parse() {
val cmd = AndroidRunCommand()
CommandLine(cmd).parse("--test-targets-always-run=a,b,c")

assertThat(cmd.testTargetsAlwaysRun).isEqualTo(arrayListOf("a", "b", "c"))
}
}
Expand Up @@ -66,6 +66,7 @@ class IosRunCommandTest {
assertThat(cmd.resultsHistoryName).isNull()
assertThat(cmd.testShards).isNull()
assertThat(cmd.repeatTests).isNull()
assertThat(cmd.testTargetsAlwaysRun).isNull()
}

@Test
Expand Down Expand Up @@ -141,4 +142,12 @@ class IosRunCommandTest {

assertThat(cmd.repeatTests).isEqualTo(3)
}

@Test
fun testTargetsAlwaysRun_parse() {
val cmd = IosRunCommand()
CommandLine(cmd).parse("--test-targets-always-run=a,b,c")

assertThat(cmd.testTargetsAlwaysRun).isEqualTo(arrayListOf("a", "b", "c"))
}
}

0 comments on commit 42eb2dd

Please sign in to comment.