На этой странице описаны основы реализации нового регистратора результатов и его настройки для тестирования.
Основной интерфейс
Чтобы определить новый регистратор результатов в Tradefed, класс должен реализовать интерфейс ITestInvocationListener, который позволяет получать и обрабатывать разные этапы вызова:
invocationStartedinvocationEndedinvocationFailed
Репортеры результатов также обрабатывают разные этапы каждого запуска теста:
testRunStartedtestStartedtestFailedилиtestIgnoredtestEndedtestRunFailedtestRunEnded
Учитывая все эти события, можно выделить два основных типа регистраторов результатов:
- Вас интересуют только окончательные результаты.
- Выполните действия с частичными результатами.
Регистратор результатов, который сообщает окончательные полные результаты
Этот тип наиболее распространен при взаимодействии с внешним сервисом, который получает результаты. Репортер просто получает и накапливает результаты, а затем отправляет их все в конечную точку результатов invocationEnded.
Мы рекомендуем этим репортерам расширить CollectingTestListener вместо базового интерфейса, чтобы не реализовывать повторно сохранение и хранение результатов до invocationEnded.
Репортер результатов, который сообщает о частичных результатах
Этот тип обычно используется для потоковой передачи результатов, когда они сразу же отправляются в другие места. Например, к этому типу относится регистратор, который записывает результаты в консоль.
Этот тип зависит от того, какая обработка требуется для событий, поэтому обычно рекомендуется реализовывать базовый интерфейс.
Конфигурация XML
Тег объекта: result_reporter. Пример:
<result_reporter class="com.android.tradefed.result.ConsoleResultReporter">
<option name="suppress-passed-tests" value="true"/>
</result_reporter>