问题描述
我正在进入 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 秒,并且大部分时间都花在这个屏幕上:
测试在模拟器上运行。我不知道这个屏幕是什么以及为什么在使用 ActivityScenarioRule
时会占用这么多时间。在每次测试中使用 ActivityScenario
时,不会显示此屏幕并且测试会快速完成。请帮忙,我错过了什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)