2014-09-12 12 views
5

Qualcuno ha delle buone risorse per configurare Bamboo per fare CI con i progetti Android? Ho il mio setup per estrarre la sorgente e compilarla con la formica. Ma mi piacerebbe sapere come installare i test JUnit, dove i test sono in un progetto separato.CI Android con Atlassian Bamboo

Grazie

+0

Potresti condividere linee guida per creare un progetto Android utilizzando gradle qui. – CoDe

+0

Abbiamo installato il plugin JFrog Artifactory in bamboo, ha un compito gradle build. Non devi usare JFrog per usarlo. Puoi quindi semplicemente pronunciare il nome dell'attività sotto il tipo di attività "clean assembleDebug" – bhawkins

+0

Che ho provato ma qualcosa che non va. L'ultima volta che ho provato questo, almeno la build era in fase di avvio e di lancio, ma stavolta non è successo nulla. Fammi controllare la mia parte, tornerò presto. – CoDe

risposta

2

ho capito come farlo utilizzando bambù CI e nuovi progetti Studio Android con Gradle. Bamboo non ha ancora un bel calo di compiti, ma puoi fare leva sul copione degli script per farlo. Abbiamo impostato le nostre attività di compilazione di base come segue:

Codice sorgente. compito Script:

  • Script Località: Inline
  • corpo Script: prova assembleDebug gradlew.bat (il nostro server Bamboo è Windows in modo da utilizzare il file bat, linux utilizzare il comando ./gradlew prova assembleDebug)

Poi aggiungiamo un compito finale di JUnit parser, e usiamo la linea directory risultato di: **/test-risultati/debug/* xml

per quanto riguarda i test che usiamo Robolectric Gradle mette alla prova, che generano. JUnit risultati dei test.

Spero che questo aiuti chiunque stia studiando come installare Bamboo con Android, si spera che aggiungeranno un giorno di supporto come fanno per .NET dove è solo una singola attività che costruisce e verifica. Il comando di script sembra una specie di hack.

Se qualcuno sta cercando test in stile Ant, posso condividerlo anche io ma spero che ormai tutti si siano spostati su Android Studio da Eclipse. Devo dire che i passaggi necessari per Ant e Instrumentation richiedono molto più tempo per l'installazione e ho dovuto utilizzare un emulatore in esecuzione sul server per eseguire i test.

+1

Il mio compito è alla ricerca di rapporti di prova all'esterno del repository, come questo: '' 'Impossibile trovare i report dei risultati del test nella directory/Users//bamboo-agent-home/xml-data/build-dir/' ' –

+0

Funziona solo se un dispositivo è connesso o se è già avviato un emulatore. – Roel

0

Oltre a utilizzare Bamboo per creare l'APK per il mio progetto Android, volevo anche utilizzare Bamboo per eseguire i test basati su JUnit su un emulatore Android. Dopo un bel po 'di "tentativi ed errori" principalmente per trovare un modo affidabile per avviare e fermare l'emulatore Android, ecco cosa mi è venuto in mente per il mio piano di costruzione Bamboo. Vedere Bamboo waits for script task to terminate, although it is run in the background per ulteriori informazioni di base sul motivo per cui prendo l'approccio descritto di seguito.

Il mio piano Bamboo ha uno stage con due lavori. I lavori vengono eseguiti utilizzando due agenti che vengono eseguiti sullo stesso sistema. Entrambi i lavori iniziano e corrono in parallelo. Un lavoro avvia l'emulatore Android utilizzando il comando dell'emulatore Android SDK. L'altro lavoro attende l'avvio dell'emulatore, crea l'app mobile, esegue i test sull'emulatore e quindi interrompe l'emulatore in esecuzione utilizzando un'attività finale che viene sempre eseguita anche se un'attività precedente nel processo di creazione non riesce.

Il lavoro dell'emulatore si "blocca" dopo l'avvio dell'emulatore perché è in attesa del completamento del processo dell'emulatore. Quando viene eseguito il processo di compilazione, l'attività finale nel processo di compilazione interrompe l'emulatore che causa il completamento del lavoro dell'emulatore perché il processo di emulazione non è più in esecuzione.

Ecco i dettagli principali attività per il lavoro composto:

primo compito è un'attività di script che attende l'emulatore per iniziare. Il comando adb -s non riuscirà a causare il fallimento di questa attività se l'emulatore non è stato avviato.

echo "Waiting 60 seconds for the Android emulator to start" 
sleep 60 
echo "See if Emulator is up and running" 
${bamboo.ANDROID_HOME}/platform-tools/adb -s emulator-5554 shell getprop dev.bootcomplete 

Il secondo e terzo compiti controllare la fonte e costruire l'applicazione utilizzando Gradle. La build esegue i test JUnit sull'emulatore in esecuzione.

La quarta attività configurata come attività finale è un'attività di script che interrompe l'emulatore.

echo "Stopping the Android emulator" 
${bamboo.ANDROID_HOME}/platform-tools/adb -s emulator-5554 emu kill 
Problemi correlati