android gradle插件-如何使用/gradlew在特定的模拟器上运行特定的任务



在一台计算机中,我有多个模拟器/设备,可以从adb设备中分辨出来。192.168.56.102:5555192.168.56.103:5555

我想通过gradle命令同时在不同的设备上运行不同的测试,例如

./gradlew -Pandroid.testInstrumentationRunnerArguments.class=ccom.example.android.testapp1 connectedAutomationDebugAndroidTest --info
./gradlew -Pandroid.testInstrumentationRunnerArguments.class=ccom.example.android.testapp2 connectedAutomationDebugAndroidTest --info

有没有什么方法可以添加一些参数,比如"adb-s"来指定我希望它运行的设备?

目前,我唯一的替代方法是使用gradle运行installApp任务,然后使用2个"adb-s"命令分别运行两组不同的测试,并使用"&"连接。

提前感谢!

OP提出了多个问题,但上下文相同,因此下面有多个部分。

指定任务

要指定任务,首先找到任务名称:

chmod +x ./gradlew
./gradlew tasks

然后简单地传递它,比如:

./gradlew myCustomTask

或者,将任务限制在特定项目中:

./gradlew :my-sub-project:myCustomTask

指定AVD(Android虚拟设备)

不支持将AVD名称传递给Gradle,除了启动Emulator之外,不支持。

因此,指定AVD的唯一方法是确保只有您想要的单个AVD已经在Emulator中运行(在启动Gradle之前)。

换句话说,将使用Emulator中已经运行的任何AVD:

  • 对于exmaple,如果你想";重新运行测试,但在另一个具有不同Android版本的AVD上"
  • 你需要先等到之前的测试结束
  • 然后关闭Emulator,并使用其他AVD重新启动Emulator

至少,可以通过CLI将AVD传递给Emulator,例如:

%ANDROID_HOME%emulatoremulator.exe -netdelay none -netspeed full -no-snapshot -no-snapshot-load -avd MyNameForAVD

或者在MacOS:中

${ANDROID_HOME}/emulator/emulator -netdelay none -netspeed full -no-snapshot -no-snapshot-load -avd MyNameForAVD

相关内容

  • 没有找到相关文章

最新更新