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

まず、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ビルドターゲットの一部としてJavaテストクラスに@Optionを追加する場合は、以下を使用してそのオプションを挿入する必要があります。

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

このコンテキストでのset-optionは、Javaクラスをラップして実行するテストハーネスのHostTestランナーのオプションです。

オプションのjarファイルターゲットに複数のテストクラスが含まれている場合、デフォルトでは、それらすべてに@optionが指定されているか、次の構文を使用して単一のクラスをターゲットにする必要があります。

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