首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多仿真器上的connectedAndroidTest

多仿真器上的connectedAndroidTest
EN

Stack Overflow用户
提问于 2017-03-03 21:08:34
回答 1查看 1.4K关注 0票数 12

背景

我想在不同的模拟器上在Jenkins上运行我的Android设备测试。假设我有100个测试和4个模拟器,我想对每个测试运行25个测试。

我在Jenkins管道的4个仿真器中并行执行./gradlew connectedDebugAndroidTest

代码语言:javascript
复制
stage('Instrumented Tests') {
    parallel(
            emu1: {
                 runInstrumentedTestOnEmu(...)
            },
            emu2: {
                 runInstrumentedTestOnEmu(...)
            }
            ...
    )
}

connectedDebugAndroidTest将生成其他命令,以设置用于运行检测测试的环境。

代码语言:javascript
复制
...
:app:transformNativeLibsWithMergeJniLibsForDebugAndroidTest
:app:processDebugAndroidTestJavaRes NO-SOURCE
:app:transformResourcesWithMergeJavaResForDebugAndroidTest
:app:validateSigningDebugAndroidTest
:app:packageDebugAndroidTest
:app:assembleDebugAndroidTest
:app:connectedDebugAndroidTest

当环境准备就绪时,它将执行:app:connectedDebugAndroidTest,它将开始在模拟器上运行测试。

我不想为所有的并行调用运行这些过程(在本例中将是4个),因为很明显,我正在多次执行完全相同的任务。从理论上讲,最好的选择是在parallel之前执行安装程序,并且当一切就绪准备运行测试时,然后进入parallel步骤并在每个模拟器上启动测试。

问题

是否可以在不执行自身的情况下执行connectedDebugAndroidTest的所有预设置步骤?

此外,如果我在4个仿真器上运行connectedDebugAndroidTest并行,构建就会崩溃,因为gradle试图从intermediate目录读取一个文件,而其他并行构建已经删除了该文件,这会导致崩溃。

您可以使用上面提到的设置查看这个在github的测试项目

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-08 01:04:15

是否可以在不执行自身的情况下执行connectedDebugAndroidTest的所有预设置步骤?

是的,您可以运行assembleDebugAndroidTest,正如构建日志显示的那样,这是运行设备测试的最后一个先决条件。运行该程序将同时构建应用程序和测试app。

尽管AFAIK,但在使用Gradle时,没有一种方法可以在多个模拟器之间分片测试--您必须将两个APK安装到每个模拟器上,并将adb shell am instrumentnumShardsshardIndex选项一起使用。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42588457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档