0

1 つのテスト メソッドを使用して android junit テストを正常に実行できましたが、複数のテスト メソッドが関係している場合、最初のテストのみが実行され、tearDown の後、後続のテストのためにアクティビティが再起動されません。その結果、すべてのテスト メソッドが失敗し、最初のメソッドを保存します。

デバッグ時に、最初の testMethod を実行する前に setUp メソッドが MainActivity を正常に起動することに気付きましたが、2 番目の 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();
}

}
4

1 に答える 1

3

ティアダウン メソッドを @Override する必要がある場合があります

@Override
public void tearDown()  throws  Exception  { 
    solo.finishOpenedActivities();
    super.tearDown();
}
于 2014-09-03T20:22:54.690 に答える