Przygotowywanie wielu celów

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

  1. multi_target_preparer wykonuje setUp po target_preparer.
  2. multi_target_preparer wykonuje tearDown przed 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:

  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

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.