2015-01-21 20 views
5

Ho alcuni test di unità e strumentazione nella mia cartella AndroidTest.Esegui test di unità Android e test di strumentazione su Jenkins (Gradle)

Sto provando a eseguire questi test sul mio locale Jenkins.

Ho configurato con successo il mio progetto con Jenkins e ho anche creato un emulatore per i test di strumentazione.

Finora tutte le risorse che ho visto si concentrano solo su formica e versioni precedenti di Gradle. La sintassi per le attività di scrittura è leggermente cambiata nella versione corrente e sono confuso su questo.

Ecco il mio file build.gradle:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 21 
    buildToolsVersion "21.1.2" 

    defaultConfig { 
     applicationId "myPackageName" 
     minSdkVersion 16 
     targetSdkVersion 21 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 


dependencies { 
    compile 'com.android.support:appcompat-v7:21.0.3' 
    compile 'com.google.android.gms:play-services:6.5.87' 
} 

risposta

-2

In un primo momento, è necessario installare il plugin Gradle dell'installazione Jenkins-CI. È possibile cercare esso a http://yourhost/jenkins/pluginManager/

Per continuare integrandolo, si può dare un'occhiata a this presentation, specialmente sugli scivoli lastest

+0

come accennato in precedenza, ho configurato correttamente il mio progetto in Jenkins. Questo è specifico per Android (unità e strumentazione). – AndroidEnthusiast

+0

Come suggerimento, ho usato Sonar in passato e ho specificato i parametri di Sonar (posizione dei test unitari, ecc.) Sul file build.gradle. Penso che tu possa fare qualcosa di simile con Jenkins – webo80

+0

L'azione SonarRunner è stata "gradlew assembleRelease". Forse dovresti aggiungere un lavoro su Jenkins, quindi Jenkins può capire come compilarlo – webo80

-1

Creare un processo in Junkins e (configurare percorso ADB) aggiungere questo comando per costruire passaggi come eseguire il comando shell o come un pipistrello finestre cmd

$ adb shell am instrument -w com.xyz.abc.test/android.test.InstrumentationTestRunner 

PS: - Per un migliore utilizzo di automazione robotium e cucchiaio con Junkins è possibile automatizzare tutto, si preme un commit su git e si ottengono i risultati dei test nella tua casella di posta elettronica e ' così forte

Modifica

test in corso che utilizzano cucchiaio

Aggiungi questi comandi per costruire passaggi

./gradlew assembleDebugAndroidTest 

./gradlew assembleDebug 

specificare percorso di debug-build.apk e il percorso di prova unaligned.apk al comando cucchiaio correttamente

java -jar C:\Users\Shivam\Downloads\spoon-runner-1.1.1-jar-with-dependencies.jar --apk C:\Users\Shivam\Downloads\SpoonAndRobotiumTest\app\build\outputs\ 
apk\app-debug.apk --testapk C:\Users\Shivam\Downloads\SpoonAndRobotiumTest\ 
app\build\outputs\apk\app-debug androidTest-unaligned.apk --sdk E:\sdk 
+0

Sembra che gradle costruisca due apk invece di uno. Per me, adb shell way ha smesso di funzionare. – sandrstar

+0

Usa il cucchiaio per eseguire i test e basta eseguire un comando di cucchiaio aggiungendo un comando per costruire passi, Controlla che ho modificato la mia risposta. Fatto. –

+0

La tua risposta non dovrebbe riguardare la tua opinione su Jenkins. – GDanger

0

È possibile scrivere uno script jenkis come questo:

stage('Build & Install') { 
//Build the apk and the test apk which will run the tests on the apk 
       sh 'chmod +x gradlew && ./gradlew --no-daemon --stacktrace clean :app:assembleDevDebug :app:assembleDevDebugAndroidTest' 
      } 

stage('Tests') { 
//Start all the existing tests in the test package 
sh './gradlew --no-daemon --debug :app:connectedDevDebugAndroidTest' 
} 

Questo dovrebbe installare l'apk e l'apk di prova nel dispositivo e avviare i casi di test nel apk di prova per l'installazione.

Qui ho dato DevDebug come ho una costante di sapore chiamato Dev e il tipo di build è Debug. Se non ne hai nessuno, non li usi.

Problemi correlati