当前位置: 首页 > 面试题库 >

在多个模拟器上的connectedAndroidTest

余靖
2023-03-14
问题内容

背景

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

./gradlew connectedDebugAndroidTest在Jenkins Pipeline的并行处理中为4个模拟器执行

stage('Instrumented Tests') {
    parallel(
            emu1: {
                 runInstrumentedTestOnEmu(...)
            },
            emu2: {
                 runInstrumentedTestOnEmu(...)
            }
            ...
    )
}

connectedDebugAndroidTest 会产生其他命令,以便为运行已测试的测试设置环境。

...
:app:transformNativeLibsWithMergeJniLibsForDebugAndroidTest
:app:processDebugAndroidTestJavaRes NO-SOURCE
:app:transformResourcesWithMergeJavaResForDebugAndroidTest
:app:validateSigningDebugAndroidTest
:app:packageDebugAndroidTest
:app:assembleDebugAndroidTest
:app:connectedDebugAndroidTest

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

我不想对所有并行调用都运行这些过程(在这种情况下,将是其中的4个),因为显然我要做多次完全相同的工作。从理论上讲,最好的选择是parallel在一切准备好运行测试之前和之时执行设置,然后进入parallel步骤并在每个仿真器上启动测试。

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

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

您可以使用上述设置在github中查看此测试项目。


问题答案:

是否可以不执行自身而执行connectedDebugAndroidTest的所有预设置步骤?

是的,您可以运行assembleDebugAndroidTest,这是构建日志所显示的,这是运行设备测试的最后前提。运行该应用程序将构建应用程序并测试APK。

虽然据我所知,没有使用时,摇篮跨越多个模拟器分片你的测试的方式-你将不得不在两者中的APK安装到每一个模拟器,并使用adb shell am instrumentnumShardsshardIndex选项。



 类似资料:
  • 问题内容: 我正在尝试在Mock上使用Mockito来执行此操作: 当使用parameter1 调用Mock.someMethod(..)->返回result1 当使用parameter2调用Mock.someMethod(..)时-> return result2 当Mock.someMethod (..)用参数3调用->返回result3 但是Mockito正确地对第一个进行了存根,但是在第二

  • 我genymotion模拟器和我的手机连接,我想通过wifi运行和调试我的应用程序,我找到了这样做的指令,但当我输入此代码时,我得到了这个错误: 我得到这个错误:错误:多个设备/仿真器 如何将我的设备设置为默认值或类似的东西来解决此问题?

  • 我想使用Ubuntu 16.04在Android emulator上启动React本机应用程序。按照react原生文档,它应该通过运行 或 出于某种原因,没有sudo,这两个命令都无法工作,但这不是问题。问题是每次我遇到同样的错误时都会运行它们: 运行adb出错:找不到Android设备。请连接设备,并按照此处的说明启用USB调试:https://developer.android.com/stu

  • 我使用Windows10和android studio V3.1.2我想在android studio中使用AVD我下载systemImages for API 27并将其放入sdk,systemImages文件夹中,它工作正常,没有问题。我创建了一个虚拟设备。现在,当我启动它时,事件日志中出现以下错误: 模拟器:panic:缺少“x86”CPU的模拟器引擎程序。 我该怎么办?这正在发生

  • 我想在地图上画一条折线 进口com.google.android.gms.maps.model.Polyline;进口com.google.android.gms.maps.model.PolylineOptions; 导入java.util。ArrayList;导入java.util.List; 公共类 MainActivity extends AppCompatActivity 实现了 OnM