是否可以从终端在多个设备上依次 运行 android espresso ui 测试?

Is it possible to run android espresso ui tests from the terminal on multiple devices one after another?

我正在尝试 运行 我的 ui 测试至少 2 phone 秒,但不能同时进行,他们必须在每次测试后 运行其他。所以当 Phone 1 完成测试 运行 时,Phone 2 开始测试 运行.

我正在寻找类似于 ./gradlew cAT 但不是同时的命令。另一种方法是指定 phone 测试应该 运行。原因是我需要能够通过 GitLab CI.运行 进行测试 CI。

是否可以从终端执行此操作?

执行此操作的最简单方法可能是创建一个脚本来调用您的 gradle 任务,并预先设置每个特定的设备序列号。这是理论上的,但应该有效。

ANDROID_SERIAL=<firstDeviceSerial> ./gradlew <yourCommand>
ANDROID_SERIAL=<secondDeviceSerial> ./gradlew <yourCommand>

他们引入了设备池的概念。这些现在负责 运行 测试套件,而不是每个设备单独 运行 测试套件。这有两个副作用:

  • 无限缩放:您的测试可以通过尽可能多的设备和模拟器来加速,因为您可以致力于 CI 盒子。
  • 因为测试套件现在被安排在池中 运行,并非所有测试都会在所有设备上 运行。出于这个原因,我们还引入了一种为每个设备创建池的方法,它提供全面覆盖(a.k.a。勺子模式)但通常需要更长的时间,因此我们每晚 运行 它。它开箱即用,无需任何代码更改。

一些类似的工具:

composer

marathon

fork