我有一个常规的 :app
模块和一个 DFM :feature
。
我将 DFM 的测试放在 :feature
内的 androidTest
源集中。
当我尝试使用 Android Studio 创建的运行配置启动测试时,它会默默失败,并显示测试框架意外退出
。
如果我使用 Android Studio 在 Run
选项卡中显示的命令通过终端启动测试,我将看到:
$ adb shell am instrument -w -m -e debug false -e class 'com.amazing.feature.AmazingTest' com.amazing.application.test/com.amazing.feature.TestRunner
...
Unable to find instrumentation info for: ComponentInfo{com.amazing.application.test/com.amazing.feature.TestRunner}
这并不奇怪,因为通往运行者的路径是不同的:
$ adb shell pm list instrumentation
instrumentation:com.amazing.feature.test/com.amazing.feature.TestRunner (target=com.amazing.application)
如果我在命令行上使用该检测,则测试有效。
有没有办法教 Android Studio 这样做?
最佳答案
升级到 AGP 7 和最新的 Android Studio 后,我也遇到了这个问题。就我而言,情况有点不同,我将同一个存储库 check out 两次,因此同时在 2 个分支上工作。就我而言,碰巧一个分支+ android studio 实例可以工作,它确实选择了正确的 TestRunner,而另一个实例则不起作用。这让我找到了一个简单的解决方案:
- 构建 -> 清理项目
- 删除所有剩余的构建文件夹(对我来说只有 1 个)
然后重试,它确实选择了正确的 TestRunner。 我尝试过的其他方法(我不知道它们是否有帮助)如下:
- 确保我使用 Java 11(因为我使用的是 AGP 7)
项目结构
->Gradle 设置
->Gradle JDK
应该类似于 11
- 禁用实验性功能
在 Gradle 同步期间不构建 Gradle 任务列表
(在 Android Studio Arctic Fox 上自动启用)
关于android - 如何通过 Android Studio 对动态功能模块执行 UI 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66578888/