Android UI 测试 - ActivityScenarioRule 明显慢于 ActivityScenario

问题描述

我正在进入 Android UI 测试,并学习了两种启动 Activity 的方法:在每次测试中 ActivityScenario,以及 ActivityScenarioRule 一次,用 @Rule 注释。

起初我使用了 ActivityScenario,并取得了成功。每个测试需要大约 2-4 秒才能完成:

@RunWith(AndroidJUnit4ClassRunner.class)
public class MyActivityTest {

    @Test
    public void test1() {
        ActivityScenario<MyActivity> scenario = ActivityScenario.launch(MyActivity.class);
        //do testing...
    }

    @Test
    public void test2() {
        ActivityScenario<MyActivity> scenario = ActivityScenario.launch(MyActivity.class);
        //do testing...
    }

    //more tests...
}

然后我决定改用 ActivityScenarioRule,因为我已经编写了大量测试,而且根据规则,我不需要为每个测试创建一个 ActivityScenario:>

@RunWith(AndroidJUnit4ClassRunner.class)
public class MyActivityTest {

   @Rule //launch this activity before each test
   public ActivityScenarioRule<MyActivity> rule = new ActivityScenarioRule<>(MyActivity.class);

    @Test
    public void test1() {
        //do testing...
    }

    @Test
    public void test2() {
        //do testing...
    }

    //more tests...
}

如果我使用此规则运行测试,每个测试大约需要 40-50 秒,并且大部分时间都花在这个屏幕上:

enter image description here

测试在模拟器上运行。我不知道这个屏幕是什么以及为什么在使用 ActivityScenarioRule 时会占用这么多时间。在每次测试中使用 ActivityScenario 时,不会显示此屏幕并且测试会快速完成。请帮忙,我错过了什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)