J'ai écrit mes cas de test en utilisant l'expresso et l'automatisation de l'interface utilisateur dans android. Maintenant, quand je cours mes deux classes différentes de cas de test.Il donne toujours l'erreurSuite classe ne pas exécuter la deuxième classe de test dans espresso en utilisant junit4 android
java.lang.RuntimeException: Aucune activité trouvée. Avez-vous oublié de lancer l'activité en appelant getActivity() ou startActivitySync ou similaire?
et n'exécute pas la classe MainActivity2Test
. Je ne suis pas capable de comprendre ce que je fais de mal. Recherche concernant cette erreur également mais pas en mesure de trouver une solution. Aidez-moi, s'il vous plaît.
AllTestsSuite.java
@RunWith(Suite.class)
@Suite.SuiteClasses ({
MainActivityTest.class,
MainActivity2Test.class,
})
public class AllTestsSuite {
}
MainActivity.java
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@RunWith(AndroidJUnit4.class)
public class MainActivityTest {
UiDevice device;
@Rule
public ActivityTestRule<MainActivity> activityRule = new ActivityTestRule(MainActivity.class, true, false);
@Test
public void test1_doLogin(){
device = UiDevice.getInstance(getInstrumentation());
device.pressHome();
device.wait(hasObject(desc("Apps")), 3000);
UiObject2 appsButton = device.findObject(desc("Apps"));
appsButton.click();
UiObject2 appsButton1 = device.findObject(desc("MyApp"));
appsButton1.click();
test2_emaillPass();
}
@Test
public void test2_emaillPass(){
}
}
MainActivity2Test.java
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@RunWith(AndroidJUnit4.class)
public class MainActivity2Test {
UiDevice device;
@Rule
public ActivityTestRule<MainActivity> activityRule = new ActivityTestRule(MainActivity.class, true, false);
@Test
public void test3_productFamily(){
onView(withId(R.id.list)).perform(RecyclerViewActions.actionOnItemAtPosition(0, click()));
test4_Product();
}
@Test
public void test4_Product() {
device = UiDevice.getInstance(getInstrumentation());
onView(withId(R.id.list)).perform(RecyclerViewActions.actionOnItemAtPosition(0, click()));
device.wait(hasObject(By.text("First product")), 4000);
test5_Detail();
}
changé dernier drapeau à vrai, mais encore obtenir l'erreur –
en faisant dernier drapeau vrai, par l'application est d'obtenir beaucoup de rafraîchissement times.And également lancer NullPointer Exception –