Travailler avec des appareils dans TF

Trade Federation utilise une abstraction appelée ITestDevice pour exécuter des tests. Cette abstraction objective l’appareil Android au plus petit dénominateur commun :

  • Il a un numéro de série
  • Il a un état : En ligne, Disponible, Récupération ou Non disponible
  • Il a une certaine notion de fiabilité. Par exemple, si nous exécutons une commande, nous pouvons faire la différence entre le cas où la commande n'est pas encore terminée, le cas où l'appareil ne prend pas en charge 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 principales implémentations d' ITestDevice représentent trois cas d'utilisation courants.

Appareil physique

Il s'agit d'un véritable matériel, connecté à la machine hôte TF soit par USB, soit en utilisant la fonction TCP d'adb. La classe TestDevice se trouve au sommet de la bibliothèque ddmlib, qui est une interface Java pour adb. Ainsi, tout périphérique physique répertorié dans adb devices peut être instancié et utilisé comme TestDevice .

Émulateur

Les émulateurs sont gérés spécialement par TF car ils vivent dans un autre processus. Pour interagir avec un émulateur, spécifiez l'argument --emulator pour la commande. Voir LocalSdkBuildProvider et SdkAvdPreparer pour plus d'informations.

Aucun dispositif

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. Le NullDevice est un ITestDevice qui n’est qu’un stub. Il a un numéro de série comme null-device-N , et la plupart des tentatives d'opérations sont soit sans opération en silence, soit lancées.