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:

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.