2015-01-21 15 views
5

Mam kilka testów jednostkowych i instrumentacyjnych w folderze androidTest.Uruchom testy jednostek jednostkowych i testy instrumentalne na Jenkins (Gradle)

Próbuję uruchomić te testy na moim lokalnym Jenkins.

Pomyślnie skonfigurowałem mój projekt z Jenkinsem, a także stworzyłem emulator do testów oprzyrządowania.

Do tej pory wszystkie zasoby, które widziałem, koncentrują się tylko na ant i wcześniejszych wersjach Gradle. Składnia zadań do pisania nieznacznie zmieniła się w obecnej wersji i jestem zdezorientowany.

Oto mój plik 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' 
} 

Odpowiedz

-2

Najpierw należy zainstalować wtyczkę na Gradle instalacji Jenkins-CI. Możesz szukać go na http://yourhost/jenkins/pluginManager/

Aby kontynuować integrowanie go, można spojrzeć na this presentation, specjalnie na najnowszymi slajdów

+0

jak wspomniano powyżej, pomyślnie skonfigurowałem mój projekt w Jenkins. Jest to specyficzne dla Androida (urządzenie i oprzyrządowanie). – AndroidEnthusiast

+0

Jako podpowiedź, użyłem w przeszłości sonaru i określiłem parametry sonaru (lokalizacja testów jednostkowych itp.) W pliku build.gradle. Myślę, że możesz zrobić coś podobnego z Jenkinsem – webo80

+0

Akcja SonarRunner to "gradlew assembleRelease". Być może musisz dodać pracę na Jenkins, więc Jenkins może dowiedzieć się, jak ją skompilować – webo80

-1

Tworzenie pracę w junkins i (skonfigurować adb path) dodać tej komendy do budowania kroki wykonać polecenie powłoki lub jako bat okien cmd

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

PS: - dla lepszego wykorzystania automatyki robotium i łyżka z junkins można zautomatyzować wszystko pchasz commit na git, a dostaniesz wyniki badań w skrzynce odbiorczej poczty to to fajne.

Edit

przebiegu badania przy użyciu łyżki

Dodaj te polecenia do budowania kroki

./gradlew assembleDebugAndroidTest 

./gradlew assembleDebug 

określić ścieżkę debug-build.apk i Test-unaligned.apk ścieżkę w poleceniu łyżka prawidłowo

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

Wydaje się, że gradle buduje dwa apki zamiast jednego. Dla mnie sposób powłoki adb właśnie przestał działać. – sandrstar

+0

Użyj łyżki, aby uruchomić testy i po prostu uruchom polecenie łyżki, dodając go do tworzenia kroków. Sprawdź, czy edytowałem swoją odpowiedź. Zrobione. –

+0

Twoja odpowiedź nie powinna dotyczyć twojej opinii o Jenkins. – GDanger

0

Można napisać skrypt jenkis tak:

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' 
} 

Należy zainstalować apk i apk testowy do urządzenia i rozpocząć przypadków testowych w testowej apk na temat instalacji.

Podałem tutaj DevDebug, ponieważ mam stałą smakową o nazwie Dev, a typ kompilacji to Debug. Jeśli nie masz żadnego z nich, nie korzystasz z nich.

Powiązane problemy