スイートとモジュールにオプションとフィルタを渡す

まず、Tradefed でのオプション処理を理解しておいてください。

スイートを設定するでは、スイート構造に存在する 2 つのレイヤについて説明しています。

  • トップレベル スイート
  • モジュール

スイート以外の Tradefed コンテキストでは、モジュールについて考える必要はありません。オプションはすべて完全な呼び出しになります。スイートのコンテキストでは、モジュールはスイートから分離されています。したがって、モジュール レベルですべてのオプションを利用できるわけではありません。

トップレベル スイートにオプションを渡す

トップレベル スイートは、標準の Tradefed 構成と同様に動作します。スイート ランナーを含む完全な構成は、スイート以外の Tradefed 構成と同様にすべてのオプションを受け取ります。

モジュールにオプションを渡す

デフォルトで、モジュールはコマンドに渡されるオプションを一切受け取りませんmodule-arg オプションを介してオプションを受け取るには、モジュールを明示的にターゲットにする必要があります。このようにモジュール オプションが分離されていることで、デバッグが容易になります。

例:

cts-tradefed run cts --module-arg <module-name>:<option-name>:<option-value>

cts-tradefed run cts --module-arg CtsGestureTestCases:collect-tests-only:true

この構文により、ターゲットにされたモジュールは指定されたオプションを受け取るようになります。

test-arg などのモジュールにオプションを渡す方法もあります。この方法では、テストランナーのタイプまたはクラスに基づいて、各モジュールのテストランナーにオプションを渡すことができます。

例:

cts-tradefed run cts --test-arg <test-class>:<option-name>:<option-value>

cts-tradefed run cts --test-arg com.android.tradefed.testtype.JarHosttest:collect-tests-only:true

この構文では、特定のモジュールをターゲットにするのではなく、指定されたクラスのテストランナーをすべてターゲットにします。test-arg は、IRemoteTest の実装のみをオプションを受け取る候補と見なします。

java_test_host の Java テストクラスにオプションを渡す

java_test_host ビルド ターゲットの一部として @Option を Java テストクラスに追加する場合は、このオプションを挿入するために以下を使用する必要があります。

cts-tradefed run cts --module-arg <module-name>:set-option:<option-name>:<option-value>

このコンテキストの set-option は、テストハーネスからの HostTest ランナーのオプションで、その実行のために Java クラスをラップします。

オプションの jar ファイル ターゲットに複数のテストクラスが含まれている場合、デフォルトでは、すべて @option を指定するか、次の構文を使用して 1 つのクラスを対象にすることが求められます。

cts-tradefed run cts --module-arg <module-name>:set-option:<class-name>:<option-name>:<option-value>

スイートにフィルタを渡す

スイートから一部のテストをフィルタするには、--include-filter または --exclude-filter を使用して、特定のテストまたはモジュールを強制的に選択するか、または除外します。除外が優先されます。

次の形式を使用します: [abi] <module-name> [test name]

例:

--include-filter CtsGestureTestCases

--include-filter armeabi-v7a CtsGestureTestCases

--include-filter armeabi-v7a CtsGestureTestCases android.gesture.cts.GestureTest#testGetStrokes