Impiegare controller di moduli

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

Se eseguire o meno il modulo in base ad alcune condizioni

Implementando BaseModuleController e aggiungendolo a 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 all'implementazione di public abstract RunStrategy shouldRun(IInvocationContext context);.

Se raccogliere o meno alcuni log in caso di errori

Quando esegui una suite completa, è possibile richiedere a livello di suite la raccolta di alcuni log sugli errori (screenshot, report di bug, logcat). Tuttavia, per alcuni moduli, un determinato log richiesto potrebbe non avere alcun valore e la sua raccolta potrebbe essere solo una perdita di tempo. In questo caso, un modulo può specificare esplicitamente i log che lo interessano:

<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: se possibile, l'implementazione dei controller deve essere generica per massimizzare il riutilizzo. Inoltre, l'utente deve ottenere l'approvazione del proprietario del modulo per saltare un modulo in base alle sue condizioni.