Usar controladores de módulo

Cada módulo de pacote (definido por AndroidTest.xml) pode conter um Objeto module_controller que pode alterar algum comportamento do módulo:

Se o módulo será executado ou não com base em algumas condições

Implementando BaseModuleController e adicionando-o ao AndroidTest.xml da seguinte forma:

<object type="module_controller" class="com.android.tradefed.testtype.suite.module.<NAME>" />

O controlador do módulo será usado para determinar se o módulo será executado ou não, com base public abstract RunStrategy shouldRun(IInvocationContext context); implementação.

Se alguns registros serão coletados ou não em caso de falhas

Ao executar um pacote completo, é possível solicitar, no nível da suíte, coleta de alguns registros em caso de falhas (captura de tela, relatório do bug, logcat). Mas por em alguns módulos, um registro específico solicitado poderá não ter valor simplesmente perdem tempo para serem coletados. Nessa situação, um módulo pode especificar em quais registros eles têm interesse:

<object type="module_controller"
        class="com.android.tradefed.testtype.suite.module.TestFailureModuleController">
    <option name="screenshot-on-failure" value="<true OR false>" />
    <option name="bugreportz-on-failure" value="<true OR false>" />
    <option name="logcat-on-failure" value="<true OR false>" />
</object>

OBSERVAÇÃO: a implementação de controladores deve ser genérica, se possível, para para maximizar a reutilização. Pular um módulo com base na condição dele deveria ser revisado pelo proprietário do módulo para obter a aprovação de que pular um módulo é o comportamento adequado para elas.