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 le 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 différencier le cas où la commande n'est pas encore terminée, le cas où l'appareil ne prend pas en charge les commandes en cours d'exécution 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 matériel réel, 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 vers adb. Ainsi, tout périphérique physique répertorié dans les 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 de la commande. Voir LocalSdkBuildProvider et SdkAvdPreparer pour plus d'informations.

Aucun dispositif

Supposons que vous ayez 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 tel que null-device-N , et la plupart des opérations tentées sont soit no-op silencieusement, soit lancées.