使用模块控制器

每个套件模块(由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>

注意:如果可能,控制器的实现应该是通用的,以最大限度地提高可重用性。并且根据其条件跳过一个模块应该由模块所有者审查,以获得跳过一个模块对他们来说是正确的行为的批准。