Utiliser des contrôleurs de module

Chaque module de suite (défini par AndroidTest.xml) peut contenir un élément spécial Objet module_controller pouvant 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 public abstract RunStrategy shouldRun(IInvocationContext context); la mise en œuvre.

Collecte de certains journaux en cas d'échec ou non

Lors de l'exécution d'une suite complète, il est possible de demander au niveau de la suite la collecte de certains journaux sur les échecs (capture d'écran, rapport de bug, logcat). Mais pour pour certains modules, un journal spécifique demandé peut ne pas avoir de valeur et perdent simplement du temps à être collectées. Dans ce cas, un module peut explicitement spécifiez 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: La mise en œuvre des contrôleurs doit être, dans la mesure du possible, générique afin de maximiser la réutilisation. Ignorer un module en fonction de sa condition être examinés par le propriétaire du module afin d'obtenir l'approbation que l'omission d'un module est le comportement approprié pour eux.