Набор тестов, как правило, включает несколько тестовых модулей и может достигать довольно большого размера. Например, набор тестов совместимости Android (CTS) включает сотни модулей и сотни тысяч тестовых случаев.
Возникает вероятность того, что большое количество тестов окажется неудачным из-за плохой изоляции или выхода устройств из строя.
Функция повторного тестирования пакетов предназначена для решения таких задач: она позволяет повторно тестировать только сбойные тесты, а не все тесты, чтобы исключить нестабильную работу и недостаточную изоляцию. Если тест постоянно терпит неудачу, повторный тест также терпит неудачу, и вы получаете гораздо более веский сигнал о наличии реальной проблемы.
Реализовать повторную попытку набора
Повтор результатов включает чтение предыдущих результатов и повторный запуск предыдущего вызова.
 Основным интерфейсом, управляющим повторными попытками, является ITestSuiteResultLoader , который позволяет загружать предыдущий результат и предыдущую командную строку.
 Затем RetryRescheduler использует эту информацию для воссоздания предыдущей команды и заполнения некоторых фильтров, чтобы повторно запустить только предыдущие неудачные или невыполненные тесты.
Пример повторной попытки набора: CTS
Конфигурация повтора в CTS следующая:
<configuration description="Runs a retry of a previous CTS session.">
    <object type="previous_loader" class="com.android.compatibility.common.tradefed.result.suite.PreviousResultLoader" />
    <test class="com.android.tradefed.testtype.suite.retry.RetryRescheduler" />
    <logger class="com.android.tradefed.log.FileLogger">
        <option name="log-level-display" value="WARN" />
    </logger>
</configuration>
Это применимо к большинству расширяющих его пакетов, например VTS .
Он будет вызываться с помощью:
cts-tradefed run retry --retry <session>
Сеанс можно найти, выведя список предыдущих результатов в консоли CTS:
cts-tf > l r
Session  Pass  Fail  Modules Complete  Result Directory     Test Plan  Device serial(s)  Build ID   Product
0        2092  30    148 of 999        2018.10.29_14.12.57  cts        [serial]          P          Pixel
Точная исходная команда будет перезагружена и выполнена повторно с дополнительными фильтрами. Это означает, что если исходная команда содержала какие-либо параметры, они также будут включены в повторную попытку.
Например:
cts-tradefed run cts-dev -m CtsGestureTestCases
 Повтор вышеприведенного действия всегда привязан к CtsGestureTestCases , поскольку мы повторяем команду, в которой задействовано только оно.
Настройте повтор для набора в стиле CTS
Для того чтобы повторная попытка сработала, предыдущие результаты необходимо экспортировать в формат Proto. Необходимо добавить следующее:
<result_reporter class="com.android.compatibility.common.tradefed.result.suite.CompatibilityProtoResultReporter" />
 Это необходимо добавить в XML-конфигурацию основной команды, и это приведет к созданию файла test-record.pb в папке результатов.
 Затем повторная попытка CTS загружает данные из комбинации test-record.pb и существующего test_result.xml для подготовки вызова повторной попытки.