Utiliser des appareils dans TF

Trade Federation utilise une abstraction appelée ITestDevice pour exécuter des tests. Cette abstraction objective l'appareil Android le plus commun:

  • Il comporte un numéro de série
  • Il a un état : "En ligne", "Disponible", "Récupération" ou "Non disponible".
  • Il comporte une notion de fiabilité. Par exemple, si nous exécutons une commande, nous pouvons faire la distinction entre le cas où la commande n'est pas encore terminée, le cas où l'appareil n'est pas compatible avec l'exécution de commandes et le cas où l'appareil ne répond plus lors de l'exécution de la commande.

Classes d'appareils

Les trois implémentations principales de ITestDevice représentent trois cas d'utilisation courants.

Appareil physique

Il s'agit d'un matériel réel, connecté à la machine hôte TF via USB ou à l'aide de la fonctionnalité TCP d'adb. La classe TestDevice se trouve au-dessus de la bibliothèque ddmlib, qui est une interface Java d'adb. Par conséquent, tout appareil physique listé dans adb devices peut être instancié et utilisé comme TestDevice.

Émulateur

Les émulateurs sont gérés de manière spéciale par TF, car ils se trouvent dans un autre processus. Pour interagir avec un émulateur, spécifiez l'argument --emulator pour la commande. Pour en savoir plus, consultez LocalSdkBuildProvider et SdkAvdPreparer.

Aucun appareil

Supposons que vous disposiez d'un test qui n'interagit pas du tout avec un appareil. Par exemple, il peut simplement télécharger un fichier à partir d'un service et vérifier que le fichier lui-même est valide. NullDevice est un ITestDevice qui n'est qu'un bouchon. Il possède un numéro de série tel que null-device-N, et la plupart des opérations tentées ne sont pas exécutées de manière silencieuse ou génèrent une exception.