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ファイルが実行時にTradefedJavaクラスパス上にある限り、それは検出されて解決されます。
Tradefedオブジェクトの注文
異なるタグの順序は重要ではありません。たとえば、 build_provider
がtarget_preparer
の後に指定されていても違いはありません。テスト呼び出しのフローはハーネス自体によって強制されるため、常に正しい順序で呼び出されます。
同じタグを持つオブジェクトの順序は重要です。たとえば、定義された2つのtarget_preparer
オブジェクトは、XMLで定義された順序で呼び出されます。これは、デバイスセットアップの終了状態を変更する可能性があるため、これを理解することが重要です。たとえば、フラッシュしてからapkをインストールすることは、フラッシュしてデバイスをワイプするため、apkをインストールしてフラッシュすることと同じではありません。