Preparadores de vários destinos

Assim como um preparador de destino, um preparador de vários destinos permite a configuração de vários dispositivos juntos. Por exemplo, isso seria usado ao conectar dois dispositivos com Bluetooth para testes.

Interface base

A interface de base é IMultiTargetPreparer, que permite a execução da implementação de um método setUp. Recomendamos implementar nossa classe abstrata básica BaseMultiTargetPreparer, que fornece um recurso de desativação integrado para desabilitar um preparador.

Os preparadores de vários destinos também fornecem diretamente um método tearDown para qualquer operação de limpeza.

Recomendação

Recomendamos limitar cada preparador a uma única função principal. Isso permite uma reutilização mais fácil dos preparadores.

Confira também a lista de preparadores disponíveis antes de adicionar um novo para evitar trabalho duplicado. Os preparadores estão disponíveis em tools/tradefederation/core/src/com/android/tradefed/targetprep/multi/.

Não há limite para o número de dispositivos que um preparador multi-alvo pode configurar. Todos os dispositivos estão disponíveis em IInvocationContext da interface para implementação.

Configuração de XML

A tag do objeto é multi_target_preparer, por exemplo:

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

Ordem de operação

  1. multi_target_preparer executa setUp após target_preparer.
  2. multi_target_preparer executa tearDown antes dos limpadores de destino.

Isso nem sempre permite a execução de todas as etapas de configuração. Portanto, é possível no XML definir o preparador de vários alvos como multi_pre_target_preparer e executá-lo antes das instâncias target_preparer.

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

A ordem geral da operação é a seguinte:

  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

Qualquer preparador multi-alvo pode ser declarado como multi_target_preparer ou multi_pre_target_preparer, dependendo da ordem de configuração necessária.