Préparateurs multicibles

Semblable à un préparateur de cibles, un préparateur multicible permet de configurer plusieurs appareils à la fois. Par exemple, cela serait utilisé lors de la connexion de deux appareils avec Bluetooth pour les tests.

Interface de base

L'interface de base est IMultiTargetPreparer, qui permet d'implémenter une méthode setUp à exécuter. Nous vous recommandons d'implémenter notre classe abstraite de base BaseMultiTargetPreparer, qui fournit une fonctionnalité de désactivation intégrée pour désactiver facilement un préparateur.

Les préparateurs multicibles fournissent également directement une méthode tearDown pour toute opération de nettoyage.

Recommandation

Nous vous recommandons de limiter chaque préparateur à une seule fonction principale. Cela permet de réutiliser plus facilement les préparateurs.

Vérifiez également la liste des préparateurs disponibles avant d'en ajouter un nouveau, afin d'éviter de faire le même travail deux fois. Les préparateurs sont disponibles dans tools/tradefederation/core/src/com/android/tradefed/targetprep/multi/.

Le nombre d'appareils qu'un préparateur multitarget peut configurer n'est pas limité. Tous les appareils sont disponibles dans IInvocationContext de l'interface à implémenter.

Configuration XML

La balise d'objet est multi_target_preparer, par exemple :

<multi_target_preparer class="com.android.tradefed.targetprep.multi.HelloWorldMultiTargetPreparer">
</multi_target_preparer>

Ordre des opérations

  1. multi_target_preparer exécute setUp après target_preparer.
  2. multi_target_preparer exécute tearDown avant les nettoyeurs cibles.

Cela ne permet pas toujours d'effectuer toutes les étapes de configuration. Il est donc possible de définir le préparateur multicible comme multi_pre_target_preparer dans le fichier XML et de l'exécuter avant les instances target_preparer.

<multi_pre_target_preparer class="com.android.tradefed.targetprep.multi.HelloWorldMultiTargetPreparer">
</multi_pre_target_preparer>

L'ordre général des opérations est le suivant :

  1. multi_pre_target_preparer setUp
  2. target_preparer setUp
  3. multi_target_preparer setUp
  4. multi_target_preparer tearDown
  5. target_preparer tearDown
  6. multi_pre_target_preparer tearDown

Tout préparateur multitarget peut être déclaré comme multi_target_preparer ou multi_pre_target_preparer selon l'ordre de configuration requis.