4

If I launch the app manually while espresso test case is running it works and test passed. But If i'm waiting to app launch automatically by espresso. It fails with below information.

Any help please. Thanks in advance.

Test Code:

@RunWith(AndroidJUnit4::class)
@LargeTest
class CSVParserActivityTest {

    @get:Rule
    var activityScenarioRule: ActivityScenarioRule<CSVParserActivity> = ActivityScenarioRule(
        CSVParserActivity::class.java
    )

    @Test
    fun checkFIlePickerDialogTitle() {
        onView(withId(R.id.title)).check(matches(AllOf.allOf(withText("Choose a CSV file"))))
    }
}

Device Details: enter image description here

Activity never becomes requested state "[RESUMED, STARTED, CREATED, DESTROYED]" (last lifecycle transition = "PRE_ON_CREATE")
    at androidx.test.core.app.ActivityScenario.waitForActivityToBecomeAnyOf(ActivityScenario.java:339)
    at androidx.test.core.app.ActivityScenario.launchInternal(ActivityScenario.java:273)
    at androidx.test.core.app.ActivityScenario.launch(ActivityScenario.java:196)
    at androidx.test.ext.junit.rules.ActivityScenarioRule.lambda$new$0$ActivityScenarioRule(ActivityScenarioRule.java:70)
    at androidx.test.ext.junit.rules.ActivityScenarioRule$$Lambda$0.get(ActivityScenarioRule.java:70)
    at androidx.test.ext.junit.rules.ActivityScenarioRule.before(ActivityScenarioRule.java:103)
    at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:50)
    at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
    at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
    at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
    at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
    at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
    at androidx.test.ext.junit.runners.AndroidJUnit4.run(AndroidJUnit4.java:162)
    at org.junit.runners.Suite.runChild(Suite.java:128)
    at org.junit.runners.Suite.runChild(Suite.java:27)
    at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
    at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
    at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
    at androidx.test.internal.runner.TestExecutor.execute(TestExecutor.java:56)
    at androidx.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:439)
    at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2198)
  • I found this: https://stackoverflow.com/questions/61477001/android-device-doesnt-launch-activities-on-the-screen-while-espresso-testing I hope this helps you. Greetings – Daniel Ramon May 22 '22 at 05:52

1 Answers1

0

You should give this permission (Display pop-up windows while running in the background) to your app. Go to App Info > other permissions > Display pop-up windows while running in the background . This worked for me.