Тестирование устройств Android с помощью Jenkins на безголовой машине
Я собираю информацию для настройки сервера Jenkins CI на безголовой машине для тестирования модулей Android.
Но поскольку тесты на базе Android требуют запуска эмулятора, требуется графическая среда или можно запустить эмулятор в неграфическом режиме?
Вики-запись в Jenkins Android Emulator плагин также не очень поучительна в этом вопросе, в ней говорится:
Если у вас есть ведомые устройства, работающие без головы (например, серверы Linux, на которых не запущен X-сервер), рекомендуется использовать Jenkins Xvnc Plugin. С включенным плагином вы можете запускать несколько эмуляторов Android параллельно на безгласном подчиненном устройстве, сохраняя при этом параметр "Показать окно эмулятора".
Означает ли это, что эмуляторы могут запускаться на безголовой машине с отключенной опцией "Показать окно эмулятора"?
Если требуется графическое окружение, самым простым решением, о котором говорит большинство источников, является использование плагина Xvnc, который использует сервер Xvnc для предоставления экземпляра X.
Но если я правильно понял, что этот сервер Xvnc должен запускаться на другой машине с X, или он запускается на безголовой машине, предоставляющей экземпляр X отсюда?
Ответы
Ответ 1
Как автор этого плагина, я могу сказать вам: вы можете запускать эмуляторы на безголовой машине без графической среды — просто снимите флажок "Показать окно эмулятора".
Это эквивалент запуска эмулятора Android с параметром "-no-window
" в командной строке.
Я обновляю wiki, чтобы сделать это более ясным; спасибо за то, что принесли его.
Ответ 2
У меня аналогичная настройка в моем проекте. Но я выбрал Robolectric для своих модульных тестов.
Простой тест Robolectric для Jenkins довольно прост.
Вам может понадобиться эмулятор для ваших системных тестов на безголовом сервере Jenkins.
У меня все еще нет решения для запуска системных тестов на безголовом сервере.