Google は、黒人コミュニティに対する人種平等の促進に取り組んでいます。取り組みを見る

Tradefed XML 設定のテンプレートとインクルード

1 つのモノリシック XML 設定を作成してテストを定義することは、必ずしも現実的ではありません。セットアップの一部を再利用して同様のテストを実行する場合は、2 つの大きな XML ファイルをコピーして維持しなければなりません。

ここで Tradefed XML 設定定義の template タグと include タグが役立ちます。ある XML 設定でプレースホルダを設定して、別の XML 設定の一部を追加できます。

テンプレートの定義の例

<configuration description="Common base configuration for local runs with minimum overhead">
    <build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />

    <template-include name="preparers" default="empty" />

    <template-include name="test" default="empty" />

    <template-include name="reporters" default="empty" />
</configuration>

テンプレートは、参照する name とオプションの default フィールドを持つプレースホルダです。default フィールドは、使用するデフォルトの置換 XML を定義します。

特定の設定のテンプレートを置き換えるには、次のコマンド パラメータをコマンドラインに追加する必要があります。

--template:map <name of template>=<replacement XML config path>

--template:map preparers=empty

例:

<template-include name="preparers" default="empty" />

この場合の empty 参照は、何も含まない empty.xml 設定を参照します。つまり、何も置き換えない場合の参照です。

XML 設定のパスは、Tradefed の JAR リソース内にある res/config フォルダに対する相対パスまたは絶対パスを指定できます。それらの場所をいくつか示します。

  • tools/tradefederation/core/res/config
  • tools/tradefederation/core/tests/res/config
  • tools/tradedeferation/contrib/res/config

インクルードの定義の例

<configuration description="Common base configuration for local runs with minimum overhead">
    <build_provider class="com.android.tradefed.build.BootstrapBuildProvider" />

    <include name="empty"/>
</configuration>

インクルードは、コマンドライン引数を必要としないためテンプレートよりもシンプルであり、name タグで参照される XML を直接展開します。テンプレートと同様に、設定へのパスは絶対パスまたは相対パスを指定できます。それでも、移植性が高いため、includes では相対パスのみを使用することをおすすめします。Tradefed を別のマシンに移動すると、絶対パスは無効になります。

設定ミス

置換 XML が見つからない場合など、設定が誤っている場合、Tradefed は何が欠落しているか、または誤って設定されているかの説明とともに ConfigurationException をスローします。