Na tej stronie opisano podstawy wdrażania nowego modułu raportującego wyniki i konfigurowania go na potrzeby testu.
Podstawowy interfejs
Aby zdefiniować nowy reporter wyników w Tradefed, klasa musi implementować interfejs ITestInvocationListener
, który umożliwia odbieranie i obsługę różnych etapów wywołania:
-
invocationStarted
-
invocationEnded
-
invocationFailed
Reporterzy wyników zajmują się także różnymi etapami każdego przebiegu testu:
-
testRunStarted
-
testStarted
-
testFailed
lubtestIgnored
-
testEnded
-
testRunFailed
-
testRunEnded
Biorąc pod uwagę wszystkie te zdarzenia, istnieją dwa główne typy osób zgłaszających wyniki: takich, którzy:
- Dbaj tylko o raportowanie ostatecznych, pełnych wyników.
- Podejmij działania w przypadku częściowych wyników.
Reporter wyników, który raportuje końcowe, kompletne wyniki
Ten typ jest najczęstszym przypadkiem interakcji z usługą zewnętrzną, która otrzymuje wyniki. Reporter po prostu odbiera i gromadzi wyniki, a następnie wysyła je wszystkie po invocationEnded
do punktu końcowego wyniku.
Zalecamy, aby ci reporterzy rozszerzyli CollectingTestListener
zamiast interfejsu podstawowego, aby uniknąć ponownego wdrażania zapisywania i przechowywania wyników do czasu invocationEnded
.
Reporter wyników, który raportuje wyniki częściowe
Ten typ jest zwykle używany do strumieniowego przesyłania wyników, gdy wyniki są odbierane i od razu przesyłane do innych miejsc. Na przykład reporter rejestrujący wyniki w konsoli będzie tego typu.
Ten typ zależy od tego, jaki typ obsługi zdarzeń jest wymagany, dlatego zazwyczaj zaleca się wdrożenie interfejsu podstawowego.
Konfiguracja XML
Znacznik obiektu result_reporter
. Na przykład:
<result_reporter class="com.android.tradefed.result.ConsoleResultReporter">
<option name="suppress-passed-tests" value="true"/>
</result_reporter>