0
我已經能夠成功運行一個測試方法的android junit測試,但是當涉及多個測試方法時,它只運行第一個測試,在tearDown之後,活動執行對於後續測試不會重新啓動。結果,我的所有測試方法都失敗了,保存了第一個。Robotium:第二次測試沒有啓動
在調試時,我注意到setUp方法在運行第一個testMethod之前成功啓動了MainActivity,但是在第二個testMethod啓動之前重新訪問,同樣的活動沒有得到重新啓動。代碼如下:
package PACKAGE.test;
import com.jayway.android.robotium.solo.Solo;
import android.test.ActivityInstrumentationTestCase2;
public class Login extends ActivityInstrumentationTestCase2 {
private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "*.*.MainActivity";
private static Class<?> launcherActivityClass;
static {
try {
launcherActivityClass = Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);
}
catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
@SuppressWarnings("unchecked")
public Login() throws ClassNotFoundException {
super(launcherActivityClass);
}
private Solo solo;
public void setUp() throws Exception {
super.setUp();
solo = new Solo(getInstrumentation(), getActivity());
}
@Test
public void testLoginScreen() {
solo.enterText(0, "user-name");
solo.enterText(1, "pwd");
solo.clickOnButton("Login");
solo.waitForActivity("*.*.*.nextActivity");
solo.clickOnRadioButton(2);
}
@Test
public void testSearch(){
solo.enterText(0, "user-name");
solo.enterText(1, "pwd");
solo.clickOnButton("Login");
solo.waitForActivity("*.*.*.nextActivity");
solo.clickOnRadioButton(1);
}
public void tearDown() throws Exception {
solo.finishOpenedActivities();
super.tearDown();
}
}
它看起來OK。無論如何@Test註解是junit4註釋。我確定,在android上沒有辦法運行junit4。你使用junit 3還是junit4? – maszter 2013-03-17 18:27:01
你爲什麼叫super.tearDown();?它不在機器人的入門頁面中調用。和super.setUp(); – 2013-03-18 09:30:55
對遲到的答覆道歉!還沒有習慣於stackoverflow的方式! – MMehta 2013-04-24 19:11:05