Utiliser des contrôleurs de module

Chaque module de suite (défini par AndroidTest.xml) peut contenir un objet module_controller spécial qui peut modifier certains comportements du module :

Indique si le module doit être exécuté ou non en fonction de certaines conditions.

En implémentant BaseModuleController et en l'ajoutant à AndroidTest.xml comme ceci :

<object type="module_controller" class="com.android.tradefed.testtype.suite.module.<NAME>" />

Le contrôleur de module sera utilisé pour déterminer si le module doit s'exécuter ou non, en fonction de l'implémentation de public abstract RunStrategy shouldRun(IInvocationContext context);.

Indiquer si certains journaux doivent être collectés en cas d'échec

Lorsque vous exécutez une suite complète, il est possible de demander au niveau de la suite la collecte de certains journaux en cas d'échec (capture d'écran, rapport de bug, logcat). Toutefois, pour certains modules, il est possible qu'un journal spécifique demandé n'ait aucune valeur et que sa collecte soit une perte de temps. 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éutilisabilité. Le propriétaire du module doit examiner le fait de passer un module en fonction de son état pour obtenir l'approbation que le fait de passer un module est le comportement approprié pour lui.