Используйте контроллеры модулей

Каждый модуль набора (определенный в 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>

ПРИМЕЧАНИЕ: Реализация контроллеров должна быть по возможности универсальной, чтобы обеспечить максимальную возможность повторного использования. Пропуск модуля по его состоянию должен быть рассмотрен владельцем модуля, чтобы получить подтверждение того, что пропуск модуля является для него правильным решением.