Każdy moduł pakietu (zdefiniowany przez AndroidTest.xml
) może zawierać specjalny obiekt module_controller
, który może zmieniać niektóre zachowania modułu:
Określa, czy moduł ma być uruchamiany w zależności od określonych warunków.
Wdrażając BaseModuleController
i dodając go do AndroidTest.xml
w ten sposób:
<object type="module_controller" class="com.android.tradefed.testtype.suite.module.<NAME>" />
Kontroler modułu będzie używany do określania, czy moduł powinien być uruchamiany, na podstawie implementacji public abstract RunStrategy shouldRun(IInvocationContext context);
.
Określa, czy w przypadku błędów mają być zbierane niektóre logi.
Podczas uruchamiania pełnego pakietu można na poziomie pakietu poprosić o zebranie niektórych dzienników w przypadku błędów (zrzut ekranu, raport o błędzie, logcat). W przypadku niektórych modułów żądany dziennik może jednak nie mieć żadnej wartości, a jego zbieranie będzie tylko stratą czasu. W takiej sytuacji moduł może wyraźnie określić, które logi go interesują:
<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>
UWAGA: jeśli to możliwe, kontrolery powinny być implementowane w sposób ogólny, aby zmaksymalizować możliwość ponownego użycia. Pominięcie modułu na podstawie jego stanu powinno zostać sprawdzone przez właściciela modułu, aby uzyskać zgodę na to, że pominięcie modułu jest dla niego właściwym działaniem.