Podobnie jak a preparator docelowy, a preparator wielodocelowy umożliwia jednoczesne konfigurowanie wielu urządzeń. Używa się go na przykład podczas łączenia 2 urządzeń przez Bluetooth na potrzeby testowania.
Interfejs podstawowy
Interfejsem podstawowym jest
IMultiTargetPreparer,
który umożliwia wdrożenie metody setUp do wykonania. Zalecamy
wdrożenie naszej podstawowej klasy abstrakcyjnej
BaseMultiTargetPreparer,
która zapewnia wbudowaną funkcję wyłączania, aby łatwo wyłączyć preparator.
Preparatory wielodocelowe udostępniają też bezpośrednio metodę tearDown do każdej operacji czyszczenia.
Rekomendacja
Zalecamy ograniczenie każdego preparatora do jednej głównej funkcji. Ułatwia to ponowne wykorzystanie preparatorów.
Zanim dodasz nowego preparatora, sprawdź też listę dostępnych preparatorów, aby uniknąć powielania pracy. Preparatory są dostępne w
tools/tradefederation/core/src/com/android/tradefed/targetprep/multi/.
Liczba urządzeń, które może skonfigurować preparator wielodocelowy, jest nieograniczona. Wszystkie urządzenia są dostępne w IInvocationContext interfejsu do wdrożenia.
Konfiguracja XML
Tag obiektu to multi_target_preparer, na przykład:
<multi_target_preparer class="com.android.tradefed.targetprep.multi.HelloWorldMultiTargetPreparer">
</multi_target_preparer>
Kolejność operacji
multi_target_preparerwykonujesetUppotarget_preparer.multi_target_preparerwykonujetearDownprzed czyszczeniem docelowym.
Nie zawsze pozwala to na wykonanie wszystkich kroków konfiguracji, dlatego możliwe jest
w XML zdefiniowanie preparatora wielodocelowego jako multi_pre_target_preparer
i wykonanie go przed instancjami target_preparer.
<multi_pre_target_preparer class="com.android.tradefed.targetprep.multi.HelloWorldMultiTargetPreparer">
</multi_pre_target_preparer>
Ogólna kolejność operacji jest następująca:
multi_pre_target_preparer setUptarget_preparer setUpmulti_target_preparer setUpmulti_target_preparer tearDowntarget_preparer tearDownmulti_pre_target_preparer tearDown
Każdy preparator wielodocelowy można zadeklarować jako multi_target_preparer lub multi_pre_target_preparer w zależności od wymaganej kolejności konfiguracji.