Tradefed의 구성은 실행해야 하는 테스트와 준비/설정 단계를 설명하기 위해 XML 구성을 따릅니다.
이론적으로는 단일 명령어에 대해 모든 것을 XML에서 정의할 수 있습니다. 하지만 실제로는 기본 템플릿 XML 파일을 확보한 후 여기에 추가 명령줄 매개변수를 맞춤설정하는 것이 훨씬 실용적입니다.
구조
<configuration description="<description of the configuration>">
<!-- A build provider that takes local device information -->
<build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />
<!-- Some target preparation, disabled by default -->
<target_preparer class="com.android.tradefed.targetprep.PreloadedClassesPreparer">
<option name="disable" value="true" />
</target_preparer>
<!-- One test running some unit tests -->
<test class="com.android.tradefed.testtype.HostTest">
<option name="class" value="com.android.tradefed.build.BuildInfoTest" />
</test>
<!-- [OPTIONAL] -->
<logger class="com.android.tradefed.log.FileLogger">
<option name="log-level" value="VERBOSE" />
<option name="log-level-display" value="VERBOSE" />
</logger>
<!-- [OPTIONAL] -->
<log_saver class="com.android.tradefed.result.FileSystemLogSaver" />
<!-- As many reporters as we want -->
<result_reporter class="com.android.tradefed.result.ConsoleResultReporter" />
<result_reporter class="com.android.tradefed.result.suite.SuiteResultReporter" />
<result_reporter class="com.android.tradefed.result.MetricsXMLResultReporter"/>
</configuration>
전체 Tradefed XML은 <configuration>
태그로 구분됩니다. Tradefed
objects
는 자체 태그에 build_provider
, target_preparer
, test
와 같이 정의되어 있습니다. 개별 용도에 대한 자세한 내용은 아키텍처 섹션에서 확인할 수 있습니다.
각 객체에는 런타임 시에 리졸브되는 class=
class=에 정의된 객체와 관련된 Java 클래스가 있습니다. 따라서 실행 시 클래스를 포함하는 JAR 파일만 Tradefed Java 클래스 경로에 있으면 이를 찾아 리졸브할 수 있습니다.
OTradefed 객체 순서
여러 태그의 순서는 상관없습니다. 예를 들어 build_provider
가 target_preparer
이후에 지정되면 차이가 없습니다. 테스트 호출의 흐름은 하네스 자체에 의해 적용되므로 항상 올바른 순서대로 호출됩니다.
같은 태그를 포함하는 객체의 순서는 상관이 있습니다. 예를 들어 정의된 두 개의 target_preparer
객체는 XML에서 정의 순서대로 호출됩니다. 기기 설정의 최종 상태가 변경될 수 있으므로 이를 이해하는 것이 중요합니다. 예를 들면 플래시에 이어 APK 설치는 APK 및 플래시 설치와 다르며, 이는 플래시로 기기가 삭제되기 때문입니다.