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