Android Espresso keep app 运行 测试后
Android Espresso keep app running after test
我进行了 Espresso 测试,希望应用程序保持准确 activity 测试已完成。我需要继续与应用程序互动。
@SmallTest
public void testOpenNavigationDrawer()
{
Espresso.onView(ViewMatchers.withId(com.eleks.espresso.example.app.R.id.content_frame)).perform(ViewActions.swipeRight());
ListView lvDrawerMenu = (ListView) getActivity().findViewById(com.eleks.espresso.example.app.R.id.lvDrawerMenu);
Preconditions.checkNotNull(lvDrawerMenu, "lvDrawerMenu is null");
final int count = lvDrawerMenu.getAdapter().getCount();
Preconditions.checkPositionIndex(2, count, "No 1 index " + count + " size");
Object obj = lvDrawerMenu.getItemAtPosition(2);
Espresso.onView(Matchers.allOf(ViewMatchers.withId(com.eleks.espresso.example.app.R.id.tvItem), ViewMatchers.hasSibling(ViewMatchers.withText(obj.toString())))).perform(ViewActions.click());
}
我该怎么做?
谢谢!
抱歉,这是不可能的。
我认为您对自动化测试的了解不够好。 \
Espresso、Robotium、Calabash 和其他 UI 测试框架是为短期测试活动而制作的。它模拟用户的特定行为 - 运行 应用程序,执行一些技巧(如果成功)而不是关闭应用程序。
当然,Espresso 允许您创建自定义空闲资源,而不是在应用程序中注册它。此外,让测试休眠特定时间的最简单方法是使用方法 Thread.sleep(time_in_miliseconds)
,但就像我说的那样,这与自动化测试的想法背道而驰。
如果您想在特定测试后 运行 拥有该应用程序,以便您可以进行某些手动交互,甚至只是为了更长时间地查看最终结果。您可以在测试结束时放置一个 Thread.sleep(MS);
以使其在那里停留任意时间。
你可以在睡眠(以及你手动进行的任何交互)之后再进行一次检查,然后继续测试。显然你不想经常这样做,因为它不利于自动测试。
你也可以使用 Breakpoints 而不是 Thread.sleep()
如果是你的情况
我进行了 Espresso 测试,希望应用程序保持准确 activity 测试已完成。我需要继续与应用程序互动。
@SmallTest
public void testOpenNavigationDrawer()
{
Espresso.onView(ViewMatchers.withId(com.eleks.espresso.example.app.R.id.content_frame)).perform(ViewActions.swipeRight());
ListView lvDrawerMenu = (ListView) getActivity().findViewById(com.eleks.espresso.example.app.R.id.lvDrawerMenu);
Preconditions.checkNotNull(lvDrawerMenu, "lvDrawerMenu is null");
final int count = lvDrawerMenu.getAdapter().getCount();
Preconditions.checkPositionIndex(2, count, "No 1 index " + count + " size");
Object obj = lvDrawerMenu.getItemAtPosition(2);
Espresso.onView(Matchers.allOf(ViewMatchers.withId(com.eleks.espresso.example.app.R.id.tvItem), ViewMatchers.hasSibling(ViewMatchers.withText(obj.toString())))).perform(ViewActions.click());
}
我该怎么做? 谢谢!
抱歉,这是不可能的。
我认为您对自动化测试的了解不够好。 \
Espresso、Robotium、Calabash 和其他 UI 测试框架是为短期测试活动而制作的。它模拟用户的特定行为 - 运行 应用程序,执行一些技巧(如果成功)而不是关闭应用程序。
当然,Espresso 允许您创建自定义空闲资源,而不是在应用程序中注册它。此外,让测试休眠特定时间的最简单方法是使用方法 Thread.sleep(time_in_miliseconds)
,但就像我说的那样,这与自动化测试的想法背道而驰。
如果您想在特定测试后 运行 拥有该应用程序,以便您可以进行某些手动交互,甚至只是为了更长时间地查看最终结果。您可以在测试结束时放置一个 Thread.sleep(MS);
以使其在那里停留任意时间。
你可以在睡眠(以及你手动进行的任何交互)之后再进行一次检查,然后继续测试。显然你不想经常这样做,因为它不利于自动测试。
你也可以使用 Breakpoints 而不是 Thread.sleep()
如果是你的情况