まず、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