Chaque module de suite (défini par AndroidTest.xml
) peut contenir un objet module_controller
spécial qui peut modifier certains comportements du module:
Exécuter ou non le module en fonction de certaines conditions
En implémentant BaseModuleController et en l'ajoutant à AndroidTest.xml
comme suit:
<object type="module_controller" class="com.android.tradefed.testtype.suite.module.<NAME>" />
Le contrôleur de module permet de déterminer si le module doit s'exécuter ou non, en fonction de l'implémentation public abstract RunStrategy shouldRun(IInvocationContext context);
.
Collecte de certains journaux en cas d'échec ou non
Lorsque vous exécutez une suite complète, vous pouvez demander au niveau de la suite la collecte de certains journaux en cas d'échec (capture d'écran, bugreport, logcat). Toutefois, pour certains modules, un journal particulier demandé peut ne pas avoir de valeur et simplement perdre du temps à être collecté. Dans ce cas, un module peut spécifier explicitement les journaux qui l'intéressent:
<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>
REMARQUE: L'implémentation des contrôleurs doit être générique si possible afin de maximiser la réutilisation. Le propriétaire du module doit examiner le fait de sauter un module en fonction de son état pour obtenir l'approbation de ce comportement.