Ogni modulo della suite (definito da AndroidTest.xml
) può contenere uno speciale oggetto module_controller
che può alterare alcuni comportamenti del modulo:
Se eseguire o meno il modulo in base ad alcune condizioni
Implementando BaseModuleController e aggiungendolo ad 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.
Se raccogliere o meno alcuni log sugli errori
Quando si esegue una suite completa, è possibile richiedere a livello di suite la raccolta di alcuni log sugli errori (screenshot, bugreport, logcat). Ma per alcuni moduli, un particolare registro richiesto potrebbe non avere alcun valore e richiedere semplicemente tempo per essere raccolto. In tale situazione, un modulo può specificare esplicitamente 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 dei controller dovrebbe essere generica, se possibile, per massimizzare la riutilizzabilità. E saltare un modulo in base alle sue condizioni dovrebbe essere esaminato dal proprietario del modulo per ottenere l'approvazione che saltare un modulo sia il comportamento corretto per lui.