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.