Trabajar con dispositivos en TF

Trade Federation utiliza una abstracción llamada ITestDevice para ejecutar pruebas. Esta abstracción objetiva el dispositivo Android de mínimo común denominador:

  • tiene un numero de serie
  • Tiene un estado: En línea, Disponible, Recuperación o No disponible
  • Tiene cierta noción de fiabilidad. Por ejemplo, si ejecutamos un comando, podemos diferenciar entre el caso en el que el comando aún no ha finalizado, el caso en el que el dispositivo no admite la ejecución de comandos y el caso en el que el dispositivo no responde mientras se ejecuta el comando.

Clases de dispositivos

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

Dispositivo físico

Esta es una pieza de hardware real, conectada a la máquina host TF por USB o mediante la función TCP de adb. La clase TestDevice se encuentra encima de la biblioteca ddmlib, que es una interfaz 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

Los emuladores son manejados especialmente por TF porque viven en otro proceso. Para interactuar con un emulador, especifique el argumento --emulator para el comando. Consulte LocalSdkBuildProvider y SdkAvdPreparer para obtener más información.

Sin dispositivo

Suponga que tiene una prueba que no interactúa en absoluto con un dispositivo. Por ejemplo, podría simplemente descargar un archivo de algún servicio y verificar que el archivo en sí sea válido. El 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 intentadas no funcionan en silencio o se lanzan.