Setzen Sie Modulcontroller ein

Jedes Suite-Modul (definiert durch AndroidTest.xml ) kann ein spezielles module_controller Objekt enthalten, das einige Verhaltensweisen des Moduls ändern kann:

Ob das Modul basierend auf bestimmten Bedingungen ausgeführt werden soll oder nicht

Indem Sie BaseModuleController implementieren und wie folgt zur AndroidTest.xml hinzufügen:

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

Der Modul-Controller wird verwendet, um zu bestimmen, ob das Modul ausgeführt werden soll oder nicht, basierend auf der public abstract RunStrategy shouldRun(IInvocationContext context); Implementierung.

Ob einige Protokolle bei Fehlern erfasst werden sollen oder nicht

Beim Ausführen einer vollständigen Suite ist es möglich, auf Suite-Ebene die Erfassung einiger Protokolle zu Fehlern (Screenshot, Bugreport, Logcat) anzufordern. Bei einigen Modulen hat ein bestimmtes angefordertes Protokoll jedoch möglicherweise keinen Wert und die Erfassung verschwendet lediglich Zeit. In dieser Situation 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. Und das Überspringen eines Moduls aufgrund seines Zustands sollte vom Modulbesitzer überprüft werden, um die Zustimmung zu erhalten, dass das Überspringen eines Moduls für ihn das richtige Verhalten ist.