强制android测试从命令行批处理文件在不同的模拟器上运行

时间:2012-02-29 12:25:09

标签: android command-line batch-file robotium

如何在每个模拟器上从命令行运行我的android junit / robotium测试?我想确保我的测试在许多Android操作系统版本和许多屏幕分辨率上运行。

我想写一个从windows命令行运行的批处理文件,在我安装的每个模拟器上反复运行我的测试套件。

要从命令行运行,我可以这样做:

  

adb shell am instrument -w   com.myapp.client.test / android.test.InstrumentationTestRunner

但是它只是在默认模拟器上运行它。如何强制该命令在我设置的所有模拟器上运行?

理想情况下,批处理文件看起来像:

  1. 启动emulator1
  2. 运行测试
  3. 关闭emulator1
  4. 启动emulator2
  5. 运行测试
  6. 关闭emulator2
  7. ...
  8. 我不知道如何进行发射并关闭部分。

    由于


    编辑:找到解决方案。以下是我的批处理文件

    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
    

1 个答案:

答案 0 :(得分:0)

我真的建议你使用像Jenkins这样的东西为你处理这个问题。您可以使用android模拟器插件构建一个完整的API版本/屏幕大小矩阵,以便运行您的测试。