Usa controladores de módulos

Cada módulo de suite (definido por AndroidTest.xml) puede contener un objeto module_controller especial que puede alterar algunos comportamientos del módulo:

Ejecutar o no el módulo según algunas condiciones

Implementa BaseModuleController y agrégalo a AndroidTest.xml de la siguiente manera:

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

El controlador de módulos se usará para determinar si el módulo debe ejecutarse o no, según la implementación de public abstract RunStrategy shouldRun(IInvocationContext context);.

Si se deben recopilar o no algunos registros sobre fallas

Cuando ejecutas un paquete completo, es posible solicitar a nivel del paquete la recopilación de algunos registros en caso de fallas (captura de pantalla, informe de errores, logcat). Sin embargo, para algunos módulos, es posible que un registro solicitado en particular no tenga ningún valor y solo se pierda tiempo en recopilarlo. En esa situación, un módulo puede especificar de forma explícita los registros que le interesan:

<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>

NOTA: Si es posible, la implementación de los controladores debe ser genérica para maximizar la reutilización. Además, el propietario del módulo debe revisar si omitir un módulo según su estado para obtener la aprobación de que omitir un módulo es el comportamiento adecuado para él.