モジュール コントローラを利用する

各スイート モジュール(AndroidTest.xml で定義)には、モジュールの動作を変更できる特殊な module_controller オブジェクトを含めることができます。

いくつかの条件に基づいてモジュールを実行するかどうか

BaseModuleController を実装し、次のように AndroidTest.xml に追加します。

<object type="module_controller" class="com.android.tradefed.testtype.suite.module.<NAME>" />

モジュール コントローラは、public abstract RunStrategy shouldRun(IInvocationContext context); 実装に基づいて、モジュールを実行するかどうかを決定するために使用されます。

障害発生時にログを収集するかどうか

フルスイートを実行する場合、障害発生時のログの一部をスイート単位でリクエストできます(スクリーンショット、バグレポート、logcat)。しかし、モジュールによっては、リクエストされた特定のログに値がなく、収集にかかる時間が単に無駄になります。その場合、モジュールは、対象となるログを明示的に指定できます。

<object type="module_controller"
        class="com.android.tradefed.testtype.suite.module.TestFailureModuleController">
    <option name="screenshot-on-failure" value="<true OR false>" />
    <option name="bugreportz-on-failure" value="<true OR false>" />
    <option name="logcat-on-failure" value="<true OR false>" />
</object>

注: 再利用性を最大化するために、コントローラの実装は可能な限り汎用的にする必要があります。また、条件に基づくモジュールのスキップは、モジュールの所有者によってレビューされ、モジュールをスキップすることが適切な動作であるという承認を得る必要があります。