Impiegare controller del modulo

Ogni modulo della suite (definito da AndroidTest.xml ) può contenere uno speciale oggetto module_controller che può alterare alcuni comportamenti del modulo:

Se eseguire o meno il modulo in base ad alcune condizioni

Implementando BaseModuleController e aggiungendolo ad AndroidTest.xml in questo modo:

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

Il controller del modulo verrà utilizzato per determinare se il modulo deve essere eseguito o meno, in base public abstract RunStrategy shouldRun(IInvocationContext context); implementazione.

Se raccogliere o meno alcuni log sugli errori

Quando si esegue una suite completa, è possibile richiedere a livello di suite la raccolta di alcuni log sugli errori (screenshot, bugreport, logcat). Ma per alcuni moduli, un particolare registro richiesto potrebbe non avere alcun valore e richiedere semplicemente tempo per essere raccolto. In tale situazione, un modulo può specificare esplicitamente a quali log è interessato:

<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: l'implementazione dei controller dovrebbe essere generica, se possibile, per massimizzare la riutilizzabilità. E saltare un modulo in base alle sue condizioni dovrebbe essere esaminato dal proprietario del modulo per ottenere l'approvazione che saltare un modulo sia il comportamento corretto per lui.