Ogni modulo della suite (definito da AndroidTest.xml
) può contenere un oggetto speciale module_controller
che può alterare 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, puoi richiedere a livello di suite la raccolta di alcuni log in caso di errori (screenshot, segnalazione di bug, logcat). Tuttavia, per alcuni moduli, un log specifico richiesto potrebbe non avere alcun valore e semplicemente sprecare tempo per essere raccolto. In questa situazione, un modulo può specificare esplicitamente i log che gli 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: l'implementazione dei controller deve essere generica, se possibile, per massimizzare la riutilizzabilità. Inoltre, l'omissione di un modulo in base alla sua condizione deve essere esaminata dal proprietario del modulo per ottenere l'approvazione che l'omissione di un modulo sia il comportamento corretto per lui.