azi*_*ian 12 android jenkins android-instrumentation
背景
我想在不同的模拟器上对Jenkins运行我的Android Instrumented测试.假设我有100个测试和4个模拟器,我想在每个上运行25个测试.
我./gradlew connectedDebugAndroidTest在Jenkins Pipeline中为4个模拟器执行并行操作
stage('Instrumented Tests') {
parallel(
emu1: {
runInstrumentedTestOnEmu(...)
},
emu2: {
runInstrumentedTestOnEmu(...)
}
...
)
}
Run Code Online (Sandbox Code Playgroud)
connectedDebugAndroidTest 将生成其他命令以设置运行检测测试的环境.
...
:app:transformNativeLibsWithMergeJniLibsForDebugAndroidTest
:app:processDebugAndroidTestJavaRes NO-SOURCE
:app:transformResourcesWithMergeJavaResForDebugAndroidTest
:app:validateSigningDebugAndroidTest
:app:packageDebugAndroidTest
:app:assembleDebugAndroidTest
:app:connectedDebugAndroidTest
Run Code Online (Sandbox Code Playgroud)
当环境准备就绪时,:app:connectedDebugAndroidTest它会在仿真器上开始运行测试.
我不想为所有并行调用运行这些过程(在这种情况下,它将是其中的4个),因为显然我多次完成相同的工作.从理论上讲,最好的选择是parallel在所有内容准备好运行测试之前和之后执行设置,然后进入parallel步骤并在每个模拟器上开始测试.
题
是否可以在不执行任何操作的情况下执行所有预设置步骤connectedDebugAndroidTest?
此外,如果我connectedDebugAndroidTest在4个仿真器上并行运行,则构建崩溃,因为intermediate当其他并行构建已删除该文件时,gradle会尝试从目录中读取文件,从而导致崩溃.
是否可以执行connectedDebugAndroidTest的所有预设置步骤而不执行自身?
是的,您可以运行assembleDebugAndroidTest,这是您的构建日志显示的,是运行设备测试的最后一个先决条件.运行它将构建应用程序和测试APK.
虽然据我所知,没有使用时,摇篮跨越多个模拟器分片你的测试的方式-你将不得不在两者中的APK安装到每一个模拟器,并使用adb shell am instrument与numShards和shardIndex选项.
| 归档时间: |
|
| 查看次数: |
809 次 |
| 最近记录: |