Создание нового отчета о результатах

В этом разделе описываются основы реализации нового генератора отчетов о результатах и ​​его настройки для теста.

Основной интерфейс

Чтобы определить новый отчет о результатах в Tradefed, класс должен реализовать интерфейс ITestInvocationListener , который позволяет получать и обрабатывать различные этапы вызова:

  • вызов запущен
  • вызов завершен
  • invocationFailed

Составители отчетов о результатах также обрабатывают различные этапы каждого тестового прогона:

  • testRunStarted
  • testStarted
  • testFailed/testIgnored
  • testEnded
  • testRunFailed
  • testRunEnded

Учитывая все эти события, есть два основных типа репортеров результатов, которые:

  • Заботьтесь только об отчете об окончательных полных результатах.
  • Примите меры по частичным результатам.

Result Reporter, который сообщает окончательные полные результаты

Этот тип является наиболее распространенным случаем, когда речь идет о взаимодействии с внешним сервисом, который получает результаты. Создатель отчетов просто получает и накапливает результаты, а затем отправляет их все в invocationEnded в конечную точку результата.

Этим составителям отчетов рекомендуется расширять CollectingTestListener вместо базового интерфейса, чтобы избежать повторной реализации сохранения и хранения результатов до invocationEnded .

Result Reporter, который сообщает частичные результаты

Этот тип обычно используется для потокового подхода к результатам, когда результаты принимаются и сразу отправляются в какие-то другие места. Например, генератор отчетов, записывающий результаты на консоль, относится к этому типу.

Этот тип зависит от того, какой тип обработки требуется для событий, поэтому обычно рекомендуется реализация базового интерфейса.

XML-конфигурация

Тег объекта будет result_reporter . Например:

<result_reporter class="com.android.tradefed.result.ConsoleResultReporter">
    <option name="suppress-passed-tests" value="true"/>
</result_reporter>