Trade Federation использует абстракцию под названием ITestDevice
для запуска тестов. Эта абстракция объективирует Android-устройство с наименьшим общим знаменателем:
- У него есть серийный номер
- Он имеет состояние: «В сети», «Доступно», «Восстановление» или «Недоступно».
- У него есть некоторое понятие надежности. Например, если мы запускаем команду, мы можем различать случай, когда команда еще не завершена, случай, когда устройство не поддерживает выполнение команд, и случай, когда устройство перестало отвечать во время выполнения команды.
Классы устройств
Три основные реализации ITestDevice
представляют собой три общих варианта использования.
Физическое устройство
Это реальное аппаратное обеспечение, подключенное к хост-компьютеру TF либо через USB, либо с помощью функции adb TCP. Класс TestDevice находится поверх библиотеки ddmlib, которая представляет собой интерфейс Java для adb. Таким образом, любое физическое устройство, указанное в adb devices
может быть создано и использовано в качестве TestDevice
.
Эмулятор
Эмуляторы обрабатываются TF специально, потому что они живут в другом процессе. Чтобы взаимодействовать с эмулятором, укажите аргумент --emulator
для команды. Дополнительные сведения см. в разделах LocalSdkBuildProvider и SdkAvdPreparer .
Нет устройства
Предположим, у вас есть тест, который вообще не взаимодействует с устройством. Например, он может просто загрузить файл из какого-либо сервиса и проверить, что сам файл действителен. NullDevice — это ITestDevice
, который является просто заглушкой. У него есть серийный номер, такой как null-device-N
, и большинство предпринятых операций либо молчат, либо выбрасывают.