Многоцелевые препараты

Подобно целевому препаратору , многоцелевой препаратор позволяет настраивать несколько устройств одновременно. Например, это может использоваться при подключении двух устройств по Bluetooth для тестирования.

Базовый интерфейс

Базовый интерфейс — IMultiTargetPreparer , который позволяет реализовать метод setUp для выполнения. Мы рекомендуем реализовать наш базовый абстрактный класс BaseMultiTargetPreparer , который предоставляет встроенную функцию отключения для легкого отключения подготовителя.

Многоцелевые препараторы также напрямую предоставляют метод tearDown для любой операции по очистке.

Рекомендация

Мы рекомендуем ограничить каждый препаратор одной основной функцией. Это позволяет упростить повторное использование препараторов.

Также проверьте список доступных препараторов перед добавлением нового, чтобы избежать дублирования работы. Препараторы доступны в tools/tradefederation/core/src/com/android/tradefed/targetprep/multi/ .

Нет ограничений на количество устройств, которые может настроить многоцелевой подготовитель. Все устройства доступны в IInvocationContext интерфейса для реализации.

XML-конфигурация

Тег объекта — multi_target_preparer , например:

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

Порядок операции

  1. multi_target_preparer выполняет setUp после target_preparer .
  2. multi_target_preparer выполняет tearDown перед целевыми очистителями.

Это не всегда позволяет выполнить все этапы настройки, поэтому в XML можно определить многоцелевой подготовительный компонент как multi_pre_target_preparer и выполнить его до экземпляров target_preparer .

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

Общий порядок работы следующий:

  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

Любой многоцелевой препаратор может быть объявлен как multi_target_preparer или multi_pre_target_preparer в зависимости от требуемого порядка настройки.