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

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

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