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
, и большинство попыток операций либо выполняются автоматически, либо выбрасываются.