Thursday, March 1, 2012

force android tests to run on different emulators from command line batch file


How can I run my android junit/robotium tests from the command line on every single emulator? I want to make sure my tests run on many android OS versions and many screen resolutions.



I'd like to write a batch file that runs from the windows command line to run my test suite over and over again on each emulator I have installed.



To run from the command line I can do this:




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




but that just runs it on the default emulator. How can I force that command to run on all of the emulators I have setup?



Ideally, the batch file would looking something like:



  1. launch emulator1

  2. run tests

  3. close emulator1

  4. launch emulator2

  5. run tests

  6. close emulator2

  7. ...



I don't know how to do the launch and close part.



Thanks





EDIT: Found solutions. Below is my batch file




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

No comments:

Post a Comment