Cada módulo de paquete (definido por AndroidTest.xml
) puede contener un ID especial
module_controller
que puede alterar algún comportamiento del módulo:
Ejecutar o no el módulo según algunas condiciones
Mediante la implementación de BaseModuleController
y agregarla a AndroidTest.xml
de la siguiente manera:
<object type="module_controller" class="com.android.tradefed.testtype.suite.module.<NAME>" />
El controlador del módulo se usará para determinar si este debe ejecutarse
o no, según el
public abstract RunStrategy shouldRun(IInvocationContext context);
para implementarlos.
Si se deben recopilar o no algunos registros sobre fallas
Cuando ejecutas un paquete completo, es posible solicitar a nivel del paquete recopilación de algunos registros sobre fallas (captura de pantalla, informe de errores, logcat) Sin embargo, para algunos módulos, es posible que un registro en particular no tenga ningún valor y simplemente pierden tiempo en ser recolectados. En ese caso, un módulo puede especificar los registros que les 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: La implementación de controladores debe ser genérica, si es posible, para maximizar la reutilización. Y omitir un módulo en función de su condición debería el propietario del módulo debe revisarlo para obtener la aprobación de que omitirlo el comportamiento adecuado para ellos.