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.