Cada módulo de la suite (definido por AndroidTest.xml
) puede contener un objeto module_controller
especial que puede alterar parte del comportamiento del módulo:
Indica si se debe ejecutar el módulo o no 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 del módulo se usará para determinar si el módulo debe ejecutarse o no, según la implementación de public abstract RunStrategy shouldRun(IInvocationContext context);
.
Indica si se deben recopilar algunos registros en caso de fallas.
Cuando se ejecuta un conjunto completo, es posible solicitar a nivel del conjunto 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 en particular solicitado no tenga ningún valor y simplemente se pierda tiempo en recopilarlo. En esa situación, un módulo puede especificar de forma explícita qué registros 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 el hecho de omitir un módulo según su condición para obtener la aprobación de que omitir un módulo es el comportamiento adecuado para él.