java - 您如何在同一活动中同步运行 Espresso 测试套件测试类?
问题描述
我想同步运行一组测试。理想情况下,我希望将这些测试集模块化到单独的类中,因为将它们组合成一个类将是一个太大的文件。例如,我有以下测试套件文件:
@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 -----
我必须做些什么才能继续我在上一个测试用例中中断的工作流程吗?
解决方案
我不认为这是一个有效的解决方案,但我想通了。我只是创建了一个单独的 Test 类,并在我的测试中创建了它的一个实例。这很有效。
推荐阅读
- mysql-workbench - 内置错误:在 mysql 工作台中尝试自动完成时的列表成员
- c - C 中的命名管道丢失信息
- c++ - 我编写了一个简单的矢量程序,在其中我得到了以下输出。你能帮我理解它的输出吗?
- video - FFmpeg:如何在视频底部添加阴影覆盖?
- php - 如何将一个数组添加到另一个数组
- sharepoint - Sharepoint 列表中的附加图像必须发送到电子邮件、Ms Teams、Kaizala
- flutter - Flutter SharedPreferences getInstance 返回 null
- python-3.x - 如何在 odoo 11 中使用函数标签强制修改 product_price 的值?
- reactjs - 开玩笑地在 useEffect 中测试restapi
- html - h1 标题标题没有响应我的网站