根据InstrumentationTestRunner API doc,这就是 Android SDK 的设计方式和目前的工作方式:
运行所有小测试: adb shell am instrument -w -e size small com.android.foo/android.test.InstrumentationTestRunner
运行所有中等测试: adb shell am instrument -w -e size medium com.android.foo/android.test.InstrumentationTestRunner
运行所有大型测试: adb shell am instrument -w -e size large com.android.foo/android.test.InstrumentationTestRunner
即使你使用普通的 adb 命令运行你的测试,你也必须使用两个进程分别运行中小型测试,一个接一个。Android Maven 插件只是 adb 命令的另一个包装器,因此无法通过 android-maven-plugin 配置 AFAIK 更改默认行为。
如果您更仔细地阅读InstrumentationTestRunner API 文档,您会注意到有一个有趣的命令用法:
过滤测试运行到带有给定注释的测试: adb shell am instrument -w -e annotation com.android.foo.MyAnnotation com.android.foo/android.test.InstrumentationTestRunner
如果与其他选项一起使用,生成的测试运行将包含两个选项的并集。例如,“-e size large -e annotation com.android.foo.MyAnnotation”将只运行带有 LargeTest 和“com.android.foo.MyAnnotation”注释的测试。
注释配置作为实验性 API 添加(标记为 @hide,有关更多详细信息,请查看此版本历史记录),并且尚未在am instrument options list 中记录。从理论上讲,您可以创建自己的注释类(参见SmallTest.java示例),标记所有 @MediumTest 以及您的 @CustomizedTest 并使用 -e size 和 -e 注释来实现您想要的:同时从两个注释运行联合测试,全部在一个命令中。
不幸的是,android-maven-plugin 不支持注解配置,请参阅插件文档和最新源代码。一种可能的解决方法是使用 exec-maven-plugin 运行普通adb shell am instrument
命令。
希望这是有道理的。