Modulcontroller verwenden

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, basierend auf 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 wird verwendet, um anhand der public abstract RunStrategy shouldRun(IInvocationContext context);-Implementierung zu bestimmen, ob das Modul ausgeführt werden soll oder nicht.

Ob bei Fehlern einige Protokolle 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 Protokoll jedoch möglicherweise wertlos und die Erhebung kostet nur unnötig 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 seines Zustands sollte vom Eigentümer des Moduls überprüft werden, um die Genehmigung zu erhalten, dass das Überspringen eines Moduls für ihn das richtige Verhalten ist.