Impiegare controller di moduli

Ogni modulo della suite (definito da AndroidTest.xml) può contenere un'etichetta speciale Oggetto module_controller che può alterare alcuni comportamenti del modulo:

Se eseguire il modulo o meno in base ad alcune condizioni

Mediante l'implementazione di BaseModuleController e di aggiungerlo 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 public abstract RunStrategy shouldRun(IInvocationContext context); implementazione.

Indica se raccogliere o meno alcuni log in caso di errori

Quando esegui una suite completa, è possibile richiedere a livello di suite raccolta di alcuni log sugli errori (screenshot, report bug, logcat). Ma per alcuni moduli, un particolare log richiesto potrebbe non avere alcun valore e semplicemente perdere tempo a essere raccolti. In questo caso, un modulo può specificare 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 di controller dovrebbe essere generica, se possibile, per per massimizzare la riusabilità. E se si salta un modulo in base alla sua condizione, essere esaminato dal proprietario del modulo per ottenere l'approvazione che l'azione di saltare un modulo il comportamento più appropriato.