결과 보고자 만들기

이 페이지에서는 새 결과 보고자를 구현하여 테스트에 맞게 구성하는 기본적인 방법을 설명합니다.

핵심 인터페이스

Tradefed에서 새 결과 보고자를 정의하려면 클래스가 호출의 여러 단계를 수신하고 처리할 수 있게 해주는 ITestInvocationListener를 구현해야 합니다.

  • invocationStarted
  • invocationEnded
  • invocationFailed

결과 보고자는 각 테스트 실행의 여러 단계 또한 처리합니다.

  • testRunStarted
  • testStarted
  • testFailed 또는 testIgnored
  • testEnded
  • testRunFailed
  • testRunEnded

이러한 모든 이벤트를 감안했을 때, 다음과 같은 두 가지 유형의 결과 보고자가 있습니다.

  • 온전한 최종 결과를 보고하는 일에만 관심이 있음
  • 부분 결과에 대한 작업을 수행

온전한 최종 결과를 보고하는 결과 보고자

결과를 수신하는 외부 서비스와 상호작용하는 일에 관해서는 이 유형이 가장 일반적인 경우입니다. 보고자는 단순히 결과를 수신하여 누적한 다음 invocationEnded 시 모두 결과 종료점으로 전송합니다.

이러한 보고자는 invocationEnded까지 결과 저장 및 보관의 재구현을 방지하기 위해 기본 인터페이스 대신 CollectingTestListener를 확장하는 것이 좋습니다.

부분 결과를 보고하는 결과 보고자

이 유형은 보통 결과의 스트리밍 접근 방식 즉, 수신된 결과가 다른 위치로 즉시 푸시되는 경우에 사용됩니다. 예를 들어 콘솔에 결과를 로깅하는 보고자가 이 유형이 됩니다.

이 유형은 이벤트에 어떤 처리 유형이 요구되는지와 관련이 있습니다. 따라서 일반적인 경우에는 기본 인터페이스를 구현하는 것이 좋습니다.

XML 구성

객체 태그는 result_reporter입니다. 예를 들면 다음과 같습니다.

<result_reporter class="com.android.tradefed.result.ConsoleResultReporter">
    <option name="suppress-passed-tests" value="true"/>
</result_reporter>