gpt4 book ai didi

android - 在 Docker 中的 Android 模拟器上运行 AndroidTest

转载 作者:行者123 更新时间:2023-11-29 23:05:08 26 4
gpt4 key购买 nike

我看到了一些关于在 Docker 中运行 AndroidTest 的链接和帖子。喜欢:

https://dzone.com/articles/running-android-tests-in-docker

https://github.com/ksoichiro/android-tests/tree/master/docker-emulator

还有一些。然而,它们似乎都不适合 CI 中的 AndroidTest,因为它们需要一个实际的 VM,或者仅仅是它们太旧了。

我尝试了以下行 Docker Image(部分):

RUN /opt/adk/tools/bin/sdkmanager "emulator" "build-tools;${BUILD_TOOLS}" "platforms;${ANDROID_PLATFORM}" "system-images;${ANDROID_PLATFORM};google_apis;armeabi-v7a" \
&& echo no | /opt/adk/tools/bin/avdmanager create avd -n "Android" -k "system-images;${ANDROID_PLATFORM};google_apis;armeabi-v7a" \

然后我使用以下命令运行模拟器:

/opt/adk/emulator/emulator @Android -writable-system -nocache -no-snapstorage &

但是,当尝试运行 connectedAndroidTest 时,出现了一些奇怪的异常,例如: 原因:com.android.ddmlib.InstallException:未知故障:错误:无法访问程序包管理器。系统在运行吗?

或者,如果我尝试手动安装测试 APK,并运行 am instrument:android.util.AndroidException:无法连接到 Activity 管理器;系统运行了吗?

所以我的问题是:有人在模拟器上运行 AndroidTest 作为 docker CI 的一部分吗?意思是,你只需要挂载你的项目并运行 gradle connectedAndroidTest 的图像,一切正常?有这方面的工作示例吗?

最佳答案

我使用此图像在模拟器上作为 CI 的一部分在模拟器上运行 AndroidTest:https://hub.docker.com/r/chrisss404/android-emulator

您可能遇到的问题是由于缺少嵌套 KVM,您的主机上的硬件加速不可用(只是猜测,但这是我遇到的问题)。在这种情况下,您必须使用软件渲染,这可能会花费大量时间。

使用软件渲染,启动大约需要 40 分钟,直到模拟器可用(在我的主机上)。但是,您可以在可接受的时间范围内像往常一样运行仪器测试。

关于android - 在 Docker 中的 Android 模拟器上运行 AndroidTest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56638721/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com