Utiliser des contrôleurs de module

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

Que ce soit pour exécuter le module 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' public abstract RunStrategy shouldRun(IInvocationContext context); la mise en oeuvre.

Que ce soit pour collecter des journaux ou non sur les échecs

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 bogue, logcat). Mais pour certains modules, un journal particulier demandé peut ne pas avoir de valeur et fera simplement perdre du temps à être collecté. Dans cette situation, 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 : La mise en œuvre des contrôleurs doit être générique si possible afin de maximiser la réutilisabilité. Et sauter un module en fonction de son état doit être examiné par le propriétaire du module pour obtenir l'approbation que sauter un module est le comportement approprié pour lui.