Работа с устройствами в TF

Trade Federation использует абстракцию ITestDevice для запуска тестов. Эта абстракция объективирует Android-устройство с наименьшим общим знаменателем:

  • Имеет серийный номер
  • Он имеет состояние: «В сети», «Доступно», «Восстановление» или «Недоступно».
  • Есть какое-то понятие надежности. Например, если мы запускаем команду, мы можем различать случай, когда команда еще не завершена, случай, когда устройство не поддерживает выполнение команд, и случай, когда устройство перестает отвечать на запросы во время выполнения команды.

Классы устройств

Три основные реализации ITestDevice представляют три распространенных варианта использования.

Физическое устройство

Это настоящее аппаратное обеспечение, подключенное к хост-компьютеру TF либо через USB, либо с помощью функции TCP adb. Класс TestDevice находится поверх библиотеки ddmlib, которая представляет собой интерфейс Java для adb. Таким образом, любое физическое устройство, указанное в adb devices может быть создано и использовано как TestDevice .

Эмулятор

Эмуляторы обрабатываются TF специально, поскольку они находятся в другом процессе. Для взаимодействия с эмулятором укажите аргумент --emulator для команды. Дополнительные сведения см. в разделах LocalSdkBuildProvider и SdkAvdPreparer .

Нет устройства

Предположим, у вас есть тест, который вообще не взаимодействует с устройством. Например, он может просто загрузить файл с какого-либо сервиса и проверить, что сам файл действителен. NullDevice — это ITestDevice , который представляет собой просто заглушку. Он имеет серийный номер, например null-device-N , и большинство попыток операций либо выполняются автоматически, либо выбрасываются.