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