À l'instar d'un préparateur de cible, un préparateur multicible permet de configurer plusieurs appareils simultanément. Par exemple, cela peut être utilisé lorsque vous connectez deux appareils en Bluetooth à des fins de test.
Interface de base
L'interface de base est IMultiTargetPreparer
, ce 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 autre pour éviter de dupliquer le travail. Les préparateurs sont disponibles dans tools/tradefederation/core/src/com/android/tradefed/targetprep/multi/
.
Il n'y a pas de limite au nombre d'appareils qu'un préparateur multicible peut configurer. Tous les appareils sont disponibles dans IInvocationContext
de l'interface à implémenter.
Configuration XML
La balise de l'objet est multi_target_preparer
, par exemple:
<multi_target_preparer class="com.android.tradefed.targetprep.multi.HelloWorldMultiTargetPreparer">
</multi_target_preparer>
Ordre des opérations
multi_target_preparer
exécutesetUp
aprèstarget_preparer
.multi_target_preparer
exécutetearDown
avant les nettoyeurs cibles.
Cela ne permet pas toujours d'exécuter toutes les étapes de configuration. Il est donc possible, dans le fichier XML, de définir le préparateur multicible comme multi_pre_target_preparer
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 d'exécution global est le suivant:
multi_pre_target_preparer setUp
target_preparer setUp
multi_target_preparer setUp
multi_target_preparer tearDown
target_preparer tearDown
multi_pre_target_preparer tearDown
Tout préparateur multicible peut être déclaré comme multi_target_preparer
ou multi_pre_target_preparer
selon l'ordre de configuration requis.