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 basierend auf bestimmten Bedingungen ausgeführt werden soll
Implementieren Sie BaseModuleController und fügen Sie sie so zu AndroidTest.xml
hinzu:
<object type="module_controller" class="com.android.tradefed.testtype.suite.module.<NAME>" />
Anhand des Modul-Controllers wird basierend auf der public abstract RunStrategy shouldRun(IInvocationContext context);
-Implementierung bestimmt, ob das Modul ausgeführt werden soll.
Ob bei Fehlern bestimmte Logs erfasst werden sollen
Wenn Sie eine vollständige Testsuite ausführen, können Sie auf Suite-Ebene anfordern, dass bei Fehlern einige Logs erfasst werden (Screenshot, Fehlerbericht, Logcat). Bei einigen Modulen ist ein bestimmtes angefordertes Log jedoch möglicherweise nicht von Nutzen und die Erfassung ist einfach nur Zeitverschwendung. In diesem Fall kann ein Modul explizit angeben, an welchen Logs 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 auf Grundlage seines Zustands sollte vom Modulinhaber überprüft werden, um die Genehmigung dafür zu erhalten.