Каждый модуль набора (определяемый AndroidTest.xml
) может содержать специальный объект module_controller
, который может изменить поведение модуля:
Запускать модуль или нет в зависимости от некоторых условий
Путем реализации BaseModuleController и добавления его в AndroidTest.xml
следующим образом:
<object type="module_controller" class="com.android.tradefed.testtype.suite.module.<NAME>" />
Контроллер модуля будет использоваться для определения того, должен ли модуль запускаться или нет, на основе public abstract RunStrategy shouldRun(IInvocationContext context);
реализация.
Собирать логи или нет при сбоях
При запуске полного пакета можно запросить на уровне пакета сбор некоторых журналов сбоев (снимок экрана, отчет об ошибке, logcat). Но для некоторых модулей конкретный запрошенный журнал может не иметь никакой ценности, и его сбор будет просто пустой тратой времени. В этой ситуации модуль может явно указать, какие журналы ему интересны:
<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>
ПРИМЕЧАНИЕ. Реализация контроллеров должна быть универсальной, если это возможно, чтобы максимизировать возможность повторного использования. И пропуск модуля в зависимости от его состояния должен быть проверен владельцем модуля, чтобы получить одобрение того, что пропуск модуля является для него правильным поведением.