На этой странице описаны основы реализации нового генератора отчетов о результатах и его настройки для теста.
Основной интерфейс
Чтобы определить новый репортер результатов в Tradefed, класс должен реализовать интерфейс ITestInvocationListener
, который позволяет получать и обрабатывать различные этапы вызова:
-
invocationStarted
-
invocationEnded
-
invocationFailed
Отчеты о результатах также обрабатывают различные этапы каждого запуска теста:
-
testRunStarted
-
testStarted
-
testFailed
илиtestIgnored
-
testEnded
-
testRunFailed
-
testRunEnded
Учитывая все эти события, существует два основных типа репортеров результатов:
- Заботьтесь только о сообщении окончательных полных результатов.
- Примите меры по частичному результату.
Отчет о результатах, который сообщает окончательные полные результаты
Этот тип является наиболее распространенным случаем, когда речь идет о взаимодействии с внешним сервисом, получающим результаты. Создатель отчетов просто получает и накапливает результаты, а затем отправляет их все по invocationEnded
в конечную точку результата.
Мы рекомендуем этим средствам создания отчетов расширять CollectingTestListener
вместо базового интерфейса, чтобы избежать повторной реализации сохранения и хранения результатов до invocationEnded
.
Отчет о результатах, который сообщает о частичных результатах
Этот тип обычно используется для потоковой передачи результатов, когда результаты принимаются и сразу же передаются в другие места. Например, к этому типу относится генератор отчетов, который записывает результаты на консоль.
Этот тип зависит от того, какой тип обработки требуется для событий, поэтому обычно рекомендуется реализовать базовый интерфейс.
XML-конфигурация
Тег объекта — result_reporter
. Например:
<result_reporter class="com.android.tradefed.result.ConsoleResultReporter">
<option name="suppress-passed-tests" value="true"/>
</result_reporter>