从该应用程序外部的特定Android应用程序上运行Espresso测试

Thi*_*345 5 android unit-testing android-espresso

我想编写一个Espresso测试,可以在该应用程序外部运行该应用程序。我对Android没有太多的经验,但是据我了解,UI测试通常是在应该测试的应用程序项目内部编写和执行的。例如,根据Android Studio中的文件浏览器,我正在开发的测试应用程序的Java文件存储在com.package.example.name中,而UI测试的Java文件存储在com.package.example中。名称(androidTest)。

我想为没有项目文件的应用程序(应用程序A)开发UI测试。由于我没有应用程序A的项目,因此无法像往常一样从同一项目内部开发应用程序A的测试。因此,我必须以某种方式从外部创建并运行它。

我最初的想法是从头开始创建一个测试应用程序(应用程序B)并向其添加一个按钮,按下该按钮将打开应用程序A。我将从应用程序B内部开发一个Espresso测试,让它按下该按钮以启动应用程序。 A,然后按照其他Espresso指令进行开发,我将通过uiautomatorviewer.bat(包含在Android SDK工具中)查看Application A的UI元素的R.ids进行开发。

至少对我而言,这似乎在理论上可以正常工作,所以我继续执行该计划。但是,当UI测试按下应用程序B内的按钮并启动应用程序A时,测试将找不到继续进行测试的活动。没有明确抛出任何错误;Logcat重复打印消息“ W / RootViewPicker?当前没有恢复活动-等待:2000毫秒,其中一个出现 ”,随着时间的流逝,2000毫秒会增加。

从历史上看,跨活动更改运行Espresso测试时我没有任何问题。我认为此问题与以下事实有关:正在启动的活动存在于Espresso测试所基于的项目之外。

如果有人基于某个应用程序之外的项目而知道一种使Espresso测试在该应用程序上成功运行的方法,我将不胜感激您可能提供的任何建议。我认为自己走在正确的道路上,但我不确定。谢谢!