我正在尝试使用Android Test Orchestrator运行参数化测试。但是由于某种原因,参数化测试无法启动。我可以在没有Orchestrator的情况下正常运行所有测试,但是我需要它来清除测试之间的一些数据。
这是从Gradle输出的。它可以看到全部14个测试,但仅执行12个测试(缺少2个已参数化):
在Nexus_5X_API_27(AVD)-8.1.0上开始14个测试
对Nexus_5X_API_27(AVD)的测试-8.1.0失败:测试运行无法完成。预期进行14次测试,收到12次]
测试运行无法完成。预期进行14次测试,收到12次]
等级:
android { defaultConfig { testInstrumentationRunner "foo.bar.CustomRunner" } testOptions { unitTests.returnDefaultValues = true execution 'ANDROID_TEST_ORCHESTRATOR' } } dependencies { androidTestImplementation "com.android.support.test:runner:$runnerVersion" androidTestUtil "com.android.support.test:orchestrator:$runnerVersion" }
测试:
@LargeTest @RunWith(Parameterized::class) class ParamTest(val param1: String, val param2: String) { companion object { @JvmStatic @Parameterized.Parameters fun data(): Collection<Array<Any>> { return listOf( arrayOf("param1", "param2"), arrayOf("param21", "param22") ) } } @Test fun shouldDoSthWithParams() { //some test } }
编辑:
作为可以使用的密封类替代方法:
@LargeTest @RunWith(AndroidJUnit4::class) class ParamTest1 : ParamTest("param1", "param2") @LargeTest @RunWith(AndroidJUnit4::class) class ParamTest2 : ParamTest("param21", "param22") sealed class ParamTest(val param1: String, val param2: String) { @Test fun shouldDoSthWithParams() { //some test } }
我正在尝试使用Android Test Orchestrator运行参数化测试。但是由于某种原因,参数化测试无法启动。我可以在没有Orchestrator的情况下正常运行所有测试,但需要清除它...