В этом разделе описываются основы реализации нового генератора отчетов о результатах и его настройки для теста.
Основной интерфейс
Чтобы определить новый отчет о результатах в 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>