Na tej stronie znajdziesz podstawowe informacje o tym, jak wdrożyć nowy moduł raportowania wyników i skonfigurować go na potrzeby testu.
Interfejs podstawowy
Aby zdefiniować w Tradefed nowy moduł raportowania wyników, klasa musi implementować interfejs ITestInvocationListener
, który umożliwia odbieranie i obsługiwanie różnych etapów wywołania:
invocationStarted
invocationEnded
invocationFailed
Reporterzy wyników obsługują też różne etapy każdego testu:
testRunStarted
testStarted
testFailed
lubtestIgnored
testEnded
testRunFailed
testRunEnded
Biorąc pod uwagę wszystkie te zdarzenia, wyróżniamy 2 główne typy reporterów wyników:
- Zależy Ci tylko na raportowaniu ostatecznych, pełnych wyników.
- podejmować działania na podstawie częściowych wyników.
Reporter wyników, który zgłasza ostateczne, pełne wyniki
Ten typ jest najczęstszy w przypadku interakcji z usługą zewnętrzną, która otrzymuje wyniki. Raportujący po prostu otrzymuje i gromadzi wyniki, a następnie wysyła je wszystkie na invocationEnded
do punktu końcowego wyników.
Zalecamy, aby te raporty rozszerzały interfejs CollectingTestListener
zamiast interfejsu podstawowego, aby uniknąć ponownego wdrażania zapisywania i przechowywania wyników do czasu invocationEnded
.
reporter wyników, który zgłasza częściowe wyniki;
Ten typ jest zwykle używany w przypadku przesyłania strumieniowego wyników, gdy są one odbierane i od razu przesyłane w inne miejsca. Na przykład reporter, który rejestruje wyniki w konsoli, będzie tego typu.
Ten typ jest specyficzny dla rodzaju obsługi wymaganej w przypadku zdarzeń, dlatego zalecanym sposobem jest zwykle implementacja interfejsu podstawowego.
Konfiguracja XML
Tag obiektu to result_reporter
. Na przykład:
<result_reporter class="com.android.tradefed.result.ConsoleResultReporter">
<option name="suppress-passed-tests" value="true"/>
</result_reporter>