Google стремится продвигать расовую справедливость для черных сообществ. Смотри как.
Эта страница была переведа с помощью Cloud Translation API.
Switch to English

Используйте Suite Retry

Пакет обычно включает в себя несколько тестовых модулей и может достигать довольно большого размера корпуса теста. Например, Android Compatibility Test Suite (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 вышеупомянутого всегда будет ограничено CtsGestureTestCases так как мы CtsGestureTestCases команду, которая включала только это.

Настройте повтор для набора в стиле CTS

Чтобы повторная попытка сработала, предыдущие результаты необходимо экспортировать в формате прото. Необходимо добавить следующее:

 <result_reporter class="com.android.compatibility.common.tradefed.result.suite.CompatibilityProtoResultReporter" />
 

Это необходимо добавить в конфигурацию XML основной команды, и это приведет к test-record.pb файла test-record.pb в папке результатов.

Затем CTS повторяет загрузку данных из комбинации test-record.pb и существующего test_result.xml для подготовки вызова повторной test_result.xml .