我有一个应用程序要在自动化中进行测试。单击它时,它将首先启动活动A(欢迎页面活动),几秒钟后,它将启动活动B.
我的自动化测试可以单独执行。但是当我把它们一起运行时,它会在某些测试中挂起(我确信这不是因为流通)。
这是我的代码:
public class OSNCommonLib extends ActivityInstrumentationTestCase2 {
public final static String mainActiviy = "XXXX.LoginActivity";//Activity A
static {
try {
launchActivityClass = Class.forName(mainActiviy);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
@SuppressWarnings("unchecked")
public OSNCommonLib() {
super(launchActivityClass);
}
@Override
public void setUp() throws Exception {
super.setUp();
solo = new Solo(getInstrumentation(), getActivity());
}
@Override
public void tearDown() throws Exception
{
try {
solo.finishOpenedActivities();
} catch (Throwable e) {
e.printStackTrace();
}
super.tearDown();
}
}
这是我的测试类扩展上面的类
public class ConversationTest extends OSNCommonLib{
public ConversationTest() throws ClassNotFoundException {
super();
}
public void test01()
{
XXXX
//solo.goBack();
}
public void test02()
{
XXXX
//solo.goBack();
}
public void test03()
{
XXXX
//solo.goBack();
}
}
它将始终挂在第三次测试中。 我的问题是:我应该使用solo.goBack()吗?事实上,我很困惑是否使用solo.goBack,因为我已经拆解了。我认为solo.finishOpenedActivities()会起作用。 但结果似乎很奇怪。 有人可以帮我这个吗? 另外,由于我有两个活动A和B,这个问题是由它造成的吗?
非常感谢!