如何在Espresso Android中为每个测试用例重新启动应用程序

时间:2019-03-20 06:09:30

标签: android android-espresso

我有一个测试套件,该套件中有多个测试用例 每个测试用例都是孤立的 因此,当我执行testsuite类时,我想为每个测试用例重新启动应用程序

我如何从一开始就针对Espresso中的每个测试用例重新启动应用程序

预先感谢

@Test
public void testcase1() {
//from first screen
}

@Test
public void testcase2() {
//from first screen
}

3 个答案:

答案 0 :(得分:0)

还有一个stack overflow答案似乎可以回答这个问题。如果您想在Kotlin中这样做,尽管我将答案转换为针对不同的测试多次重新启动。

@RunWith(AndroidJUnit4::class)
class ExampleEspressoTest {

    @get:Rule
    val rule = ActivityTestRule(
        activityClass = MainActivity::class.java,
        initialTouchMode = false,
        launchActivity = false) //set to false to customize intent

    @Test
    fun testCustomIntent() {
        val intent = Intent().apply {
            putExtra("your_key", "your_value")
        }
        rule.launchActivity(intent)

        //continue with your test
    }

}

答案 1 :(得分:0)

如果您需要启动一种方法/测试,并且完成后清除数据并启动下一个测试,则应使用命令。

请参阅以下文档:https://developer.android.com/studio/test/command-line

我正在使用以下命令:

./gradlew testVariantNameUnitTest --tests *.sampleTestMethod

答案 2 :(得分:0)

可能有几种方法可以执行此操作,但我们希望有一种既可以在本地使用又可以在Google Fire Base测试实验室中使用的方法,因此最终使用了默认配置下build.gradle文件中的配置。

defaultConfig{ 
   testInstrumentationRunnerArguments clearPackageData: 'true'
}

参考:https://developer.android.com/training/testing/junit-runner#ato-gradle

您还可以使用这些运行器参数来配置要基于构建变体或其他配置选项运行的不同测试,如果需要更多详细信息,请查看我的post