Cómo trabajar con dispositivos en TF

Trade Federation usa una abstracción llamada ITestDevice para ejecutar pruebas. Esta abstracción objetiva el dispositivo Android de denominador común más bajo:

  • Tiene un número de serie
  • Tiene un estado: En línea, Disponible, Recuperación o No disponible.
  • Tiene alguna noción de confiabilidad. Por ejemplo, si ejecutamos un comando, podemos diferenciar entre el caso en el que el comando aún no finalizó, el caso en el que el dispositivo no admite la ejecución de comandos y el caso en el que el dispositivo dejó de responder mientras se ejecutaba el comando.

Clases de dispositivos

Las tres implementaciones principales de ITestDevice representan tres casos de uso comunes.

Dispositivo físico

Es un hardware real que se conecta a la máquina host de TF por USB o con la función TCP de adb. La clase TestDevice se encuentra en la parte superior de la biblioteca ddmlib, que es una interfaz de Java para adb. Por lo tanto, se puede crear una instancia de cualquier dispositivo físico que aparezca en adb devices y usarlo como TestDevice.

Emulador

TF controla de forma especial los emuladores porque se encuentran en otro proceso. Para interactuar con un emulador, especifica el argumento --emulator para el comando. Consulta LocalSdkBuildProvider y SdkAvdPreparer para obtener más información.

Ningún dispositivo seleccionado

Supongamos que tienes una prueba que no interactúa con ningún dispositivo. Por ejemplo, podría descargar un archivo de algún servicio y verificar que el archivo sea válido. NullDevice es un ITestDevice que es solo un stub. Tiene un número de serie como null-device-N, y la mayoría de las operaciones que se intentan no se realizan de forma silenciosa o se arrojan.