我的 Android 应用有一些针对手机和平板电脑的活动略有不同。我正在使用 JUnit、Android SDK 和 Robotium 编写自动化程序。基于连接的设备有选择地执行测试的最佳方法是什么?
2 回答
最简单的方法是使用 @PhoneOnly 注释标记仅限手机的测试,使用 @TabletOnly 注释标记平板电脑测试,然后在不同的设备类型上运行不同的 adb 命令:
为此,请查看http://developer.android.com/reference/android/test/InstrumentationTestRunner.html上的文档
具体来说
使用给定注释过滤测试运行: 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”注释的测试。
在没有给定注释的情况下过滤测试运行: adb shell am instrument -w -e notAnnotation com.android.foo.MyAnnotation com.android.foo/android.test.InstrumentationTestRunner
您可以在测试期间检测您的测试设备是手机还是平板电脑。因此,您的测试应用程序将包含:
- 一个测试类,它将确定屏幕尺寸并决定应该进行哪些测试
- 很多功能(带输入参数Solo solo)。此功能是您现在拥有的测试。
您的测试类可以调用适当的函数来测试手机或平板电脑。
查看如何获取屏幕尺寸。
希望能帮助到你。