Modulcontroller einsetzen

Jedes Suite-Modul (definiert durch AndroidTest.xml) kann ein spezielles module_controller-Objekt enthalten, mit dem sich das Verhalten des Moduls ändern lässt:

Ob das Modul ausgeführt werden soll oder nicht, abhängig von bestimmten Bedingungen

Implementieren Sie BaseModuleController und fügen Sie ihn der AndroidTest.xml so hinzu:

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

Der Modulcontroller bestimmt anhand der public abstract RunStrategy shouldRun(IInvocationContext context);-Implementierung, ob das Modul ausgeführt werden soll oder nicht.

Ob bestimmte Logs bei Fehlern erfasst werden sollen oder nicht

Wenn Sie eine vollständige Suite ausführen, können Sie auf Suitenebene die Erfassung einiger Protokolle bei Fehlern anfordern (Screenshot, Fehlerbericht, Logcat). Bei einigen Modulen ist ein bestimmtes angefordertes Protokoll jedoch möglicherweise wertlos und die Erfassung kostet nur Zeit. In diesem Fall kann ein Modul explizit angeben, an welchen Protokollen es interessiert ist:

<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>

HINWEIS: Die Implementierung von Controllern sollte nach Möglichkeit generisch sein, um die Wiederverwendbarkeit zu maximieren. Das Überspringen eines Moduls aufgrund seiner Bedingung sollte vom Modulinhaber geprüft werden, um die Genehmigung zu erhalten, dass das Überspringen eines Moduls das richtige Verhalten ist.