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 :

S'il faut exécuter le module ou non en fonction de certaines conditions

En implémentant BaseModuleController et en l'ajoutant au 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 du public abstract RunStrategy shouldRun(IInvocationContext context); mise en œuvre.

S'il faut ou non collecter des journaux 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 logs d'échecs (capture d'écran, rapport de bug, logcat). Mais pour certains modules, un journal particulier demandé peut n'avoir aucune 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éutilisation. Et sauter un module en fonction de son état doit être examiné par le propriétaire du module pour obtenir l'approbation selon laquelle sauter un module est le comportement approprié pour lui.