заставить тесты Android запускаться на разных эмуляторах из командного файла командной строки

Как я могу запускать тесты Android junit/robotium из командной строки на каждом отдельном эмуляторе? Я хочу убедиться, что мои тесты работают на многих версиях ОС Android и многих разрешениях экрана.

Я хотел бы написать пакетный файл, который запускается из командной строки Windows, чтобы снова и снова запускать мой набор тестов на каждом установленном мной эмуляторе.

Для запуска из командной строки я могу сделать это:

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

но это просто запускает его на эмуляторе по умолчанию. Как я могу заставить эту команду работать на всех эмуляторах, которые я настроил?

В идеале командный файл должен выглядеть примерно так:

  1. запустить эмулятор1
  2. запустить тесты
  3. закрыть эмулятор1
  4. запустить эмулятор2
  5. запустить тесты
  6. закрыть эмулятор2
  7. ...

Я не знаю, как сделать запуск и закрытие части.

Спасибо


РЕДАКТИРОВАТЬ: найдены решения. Ниже мой командный файл

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

person user952342    schedule 29.02.2012    source источник


Ответы (1)


Я бы очень рекомендовал вам использовать что-то вроде Jenkins, чтобы справиться с этим для вас. Вы можете использовать плагин эмулятора Android, чтобы создать целую матрицу версий API/размера экрана, с которой будут выполняться ваши тесты.

person Paul Harris    schedule 17.12.2013