CTS Android Автоматизация с помощью CI Tool - PullRequest
2 голосов
/ 17 февраля 2020

Я пытаюсь выполнить 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);
        }
    }
}

...