使用模塊控制器

每個套件模塊(由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>

注意:如果可能,控制器的實現應該是通用的,以最大限度地提高可重用性。並且根據其條件跳過一個模塊應該由模塊所有者審查,以獲得跳過一個模塊對他們來說是正確的行為的批准。