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