CTS Android Automation через CI Tool
Я пытаюсь запустить Android CTS с помощью этой команды:./cts-tradefed run cts --shards ${no_of_devices}
Когда я выполняю простую команду оболочки из терминала, он обнаруживает все подключенные устройства и параллельно выполняет набор тестов, используя все подключенные устройства для выполнения тестов. Хотя, когда я пытаюсь вызвать эту команду оболочки из кода Java (локально) или сервера CI; он обнаруживает все устройства, но выполняет тесты на (no_of_devices -1). Устройство, которое игнорируется, всегда является первым устройством в списке. Подтверждено, что само устройство не является проблемой, потому что если это устройство не является первым в списке устройств, это устройство будет использоваться для выполнения тестов.
Мой сценарий оболочки выглядит так:
!#/bin/bash
./cts-tradefed run cts --shards 2 #say if I have two devices connected
Код Java, который я использую для выполнения сценария оболочки, следующий:
public class Main {
public static void main(String[] args) {
ProcessBuilder pb = new ProcessBuilder("temp/run-cts-with-sharding.sh");
try {
Process p = pb.start();
Thread.sleep(2000);
BufferedReader reader = new BufferedReader(
new InputStreamReader(p.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch(Exception e) {
System.out.println("Exception on pb.start(): " + e);
}
}
}