Tradefed の構成は、実行するテストと準備や設定の手順を記述する XML 構造に従います。
理論上は、1 つのコマンドに対して、すべてを 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=
で定義された Java クラスが関連付けられています。そのため、このクラスを含む JAR ファイルが実行時に Tradefed Java クラスパス上にある限り、検出および解決されます。
Tradefed オブジェクトの順序
種々のタグの順序は関係ありません。たとえば、build_provider
を target_preparer
の後に指定しても違いはありません。テスト呼び出しのフローは、ハーネス自体によって適用されるため、常に正しい順序で呼び出されます。
同じタグを持つオブジェクトの順序は重要です。たとえば、定義された 2 つの target_preparer
オブジェクトは、XML での定義順に呼び出されます。デバイスのセットアップの終了状態が変わる可能性があるため、この点を理解することが重要です。たとえば、フラッシュしてから apk をインストールすることは、apk をインストールしてからフラッシュすることと同じではありません。フラッシュするとデバイスがワイプされるためです。