如何在每个模拟器上从命令行运行我的 android junit/robotium 测试?我想确保我的测试在许多 Android 操作系统版本和许多屏幕分辨率上运行。
我想编写一个从 Windows 命令行运行的批处理文件,以便在我安装的每个模拟器上一遍又一遍地运行我的测试套件。
要从命令行运行,我可以这样做:
adb shell am instrument -w com.myapp.client.test/android.test.InstrumentationTestRunner
但这只是在默认模拟器上运行它。如何强制该命令在我设置的所有模拟器上运行?
理想情况下,批处理文件看起来像这样:
- 启动模拟器1
- 运行测试
- 关闭模拟器1
- 启动模拟器2
- 运行测试
- 关闭模拟器2
- ...
我不知道如何进行启动和关闭部分。
谢谢
编辑:找到解决方案。下面是我的批处理文件
set PORTRAIT=medium
set LANDSCAPE=large
:: launch emulator
emulator -avd android2.2
:: wait for emulator to load
adb wait-for-device
:: install apps?
:: run tests in portrait
adb shell am instrument -w -e size %PORTRAIT% com.myapp.client.test/android.test.InstrumentationTestRunner
:: run tests in landscape
adb shell am instrument -w -e size %LANDSCAPE% com.myapp.client.test/android.test.InstrumentationTestRunner
:: pull screenshots
adb pull /sdcard/ c:\
:: close/kill emulator (android bug here, so must use windows taskkill)
taskkill /IM emulator-arm.exe
最佳答案
我真的建议您使用 Jenkins 之类的工具来为您处理此问题。您可以使用 android 模拟器插件构建一个完整的 API 版本/屏幕尺寸矩阵,以运行您的测试。
关于android - 强制android测试从命令行批处理文件在不同的模拟器上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9499147/