Как синхронно выполнять тестовые классы Espresso Test Suite в одном упражнении? - PullRequest
0 голосов
/ 25 октября 2019

Я хочу запустить набор тестов синхронно. В идеале я хочу, чтобы эти наборы тестов были модульными в отдельные классы, поскольку объединение их в 1 класс будет слишком большим для файла. Например, у меня есть следующий файл набора тестов:

@RunWith(Suite.class)
@Suite.SuiteClasses({
        LoginTest.class,
        AddItemsTest.class,
        ItemTest.class,
        ArchiveTest.class,
        LogoutTest.class
})
public class FullTest{}

Эти тесты выполняются по порядку, однако я не совсем понимаю, продолжаю ли использовать один и тот же контекст и активность между этими тестами. Я получаю ошибки при выполнении тестов, когда не удается найти действие ...

E/TestRunner: failed: runAddItems(com.XXX.XXX.functional.TestSuite.AddItemsTest)
    ----- begin exception -----
E/TestRunner: java.lang.RuntimeException: No activities found. Did you forget to launch the activity by calling getActivity() or startActivitySync or similar?
        at androidx.test.espresso.base.RootViewPicker.waitForAtLeastOneActivityToBeResumed(RootViewPicker.java:176)
        at androidx.test.espresso.base.RootViewPicker.get(RootViewPicker.java:88)
        at androidx.test.espresso.ViewInteractionModule.provideRootView(ViewInteractionModule.java:77)
        at androidx.test.espresso.ViewInteractionModule_ProvideRootViewFactory.provideRootView(ViewInteractionModule_ProvideRootViewFactory.java:37)
        at androidx.test.espresso.ViewInteractionModule_ProvideRootViewFactory.get(ViewInteractionModule_ProvideRootViewFactory.java:27)
        at androidx.test.espresso.ViewInteractionModule_ProvideRootViewFactory.get(ViewInteractionModule_ProvideRootViewFactory.java:10)
        at androidx.test.espresso.base.ViewFinderImpl.getView(ViewFinderImpl.java:63)
        at androidx.test.espresso.ViewInteraction$2.call(ViewInteraction.java:280)
        at androidx.test.espresso.ViewInteraction$2.call(ViewInteraction.java:272)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at android.os.Handler.handleCallback(Handler.java:789)
        at android.os.Handler.dispatchMessage(Handler.java:98)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6949)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
    ----- end exception -----

Что мне нужно сделать, чтобы продолжить работу в том рабочем процессе, на котором я остановился в последнем тестовом примере?

1 Ответ

0 голосов
/ 25 октября 2019

Я не думал, что это правильное решение, но я понял это. Я просто создаю отдельный класс Test и создаю его экземпляр в своем тесте ... это сработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...