2013-08-12 14 views
5

Qualcuno è riuscito a far sì che Jenkins usasse la VM Android di Genymotion, invece dell'emulatore di androide super-lento?Jenkins - Usa Genymotion VM invece dell'emulatore Android

Genymotion è in realtà più veloce di un dispositivo reale sulla mia macchina di sviluppo, quindi sarebbe l'ideale per eseguire test CI.

Grazie per qualsiasi idea.

Simon

+1

Genimotion si comporta esattamente come un semplice dispositivo. Si puoi usare ADB per gestirlo. Hai un problema preciso nel tuo caso d'uso? –

+0

Ho trovato un tutorial su come integrare Genymotion su Jenkins qui: http://blog.genymobile.com/genymotion-jenkins-android-testing/ – Christopher

+0

Vedi questo nuovo articolo (ufficiale) riguardante jenkins e genymotion 2.5 http: // www. genymobile.com/genymotion-jenkins-integration/ – Dori

risposta

4

Se si avvia il genymotion sul server CI e lasciarlo sempre in esecuzione, allora funzionerà bene. Anche se vuoi svegliarlo solo per te testare e chiudere id id in seguito, allora sì, ti mancheranno alcune cose con la genomotion fino ad ora.

Il plug-in dell'emulatore Jenkins per Android era utile in questa materia e non esiste ancora alcun equivalente con la genomotion. Genymotion non è ancora abbastanza scriptabile per essere eseguito su linea di comando, idealmente senza testa.

Tuttavia, sui nostri progetti al lavoro, siamo passati di recente alla genomotion, avviare un "emulatore", lasciarlo girare sempre sul server CI e tutto funziona correttamente. Ne è valsa davvero la pena, abbiamo ridotto i tempi di compilazione di un fattore 2 e non affrontiamo alcun problema di memoria così comune sull'emulatore reale, anche con HAX abilitato.

Un plugin jenkins sarebbe benvenuto da Genymotion. Penso che lo abbiano già sulla loro tabella di marcia.

+1

Puoi trovare come avviare l'emulatore genymotion sulla riga di comando [qui] (http://stackoverflow.com/q/18396344/693752) – Snicolas

+0

Come fai a generare Genymotion per iniziare l'utente di Jenkins? VirtualBox funziona solo per l'amministratore di sistema predefinito, non per Jenkins! –

2

Si può iniziare un giocatore con un'istanza già configurato in questo modo:

/Applications/Genymotion.app/Contents/MacOS/player --vm-name "Galaxy Nexus - 4.2.2 - API 17 - 720x1280" 

Nota che non è senza testa.

Per ottenere l'elenco delle istanze configurate utilizzare VBoxManage:

$ VBoxManage list vms 
"Galaxy Nexus - 4.2.2 - API 17 - 720x1280" {56d8e3aa-ecf8-483e-a450-86c8cdcedd35} 

È possibile utilizzare sia il nome (tra virgolette) o l'ID con --vm-name

+0

Questo non funzionerà per l'utente che ha effettuato l'accesso a Jenkins, poiché non ha accesso ai VM. –

+0

Credo ci sia voluta qualche manipolazione di utenti/diritti, ma abbiamo avuto un lavoro su Jenkins lavorando su un MacBook. Non sono più associato al progetto da cui proviene, quindi non sono sicuro di quale sia lo stato attuale, specialmente con tutte le modifiche che GenyMotion ha fatto dallo scorso autunno. –

+0

Sì, il problema principale è che Jenkins gira sotto il proprio account utente unix. Quell'account è solitamente diverso dagli account VirtualBox che gli utenti MacBook scaricano in Genymotion. –

0

è possibile utilizzare la versione x86 dell'emulatore. Genymotion è fondamentalmente un emulatore di versione x86, motivo per cui è più veloce dell'emulatore della versione di braccio Android.