2013-08-19 14 views
8

Chcę, aby Robolectric pracował z Androidem Studio i próbuję użyć [grad-android-test-plugin] [1] po przejrzeniu odpowiedzi na to [pytanie] [2] , ale nie mam szczęścia.Jak korzystać z wtyczki test-grad-android

  1. Stworzyłem nowy projekt Androida i nazwał go MyApp.
  2. Wykonałem wszystkie instrukcje w sekcji "Użycie" w pliku README.
  3. Nie ma jeszcze żadnego kodu, aby przetestować na moim nowym projekcie, więc skopiowałem klas (w tym `RobolectricGradleTestRunner`) od
gradle-android-test-plugin/example/src/test/java/com/example 

i

gradle-android-test-plugin/example/src/main/java/com/example 

katalogów do odpowiednich ścieżek plików w moim nowym projekcie MyApp.

Nigdy wcześniej nie testowałem urządzenia na Androida i nie wiem, co robić dalej. Udało mi się uruchomić ./gradlew install w katalogu głównym wtyczki, ale wykonanie tego samego w katalogu głównym mojego nowego projektu nic nie daje. To rzuca tę skargę:

Task 'install' is ambiguous in root project 'MyApp'. Candidates are: 'installDebug', 'installTest'. 

ja nie jestem zaznajomiony z Gradle, tak krótki czytania podręcznika na samej Gradle, nie jestem pewien, jak rozwiązać ten problem.

Gdybym wejść do katalogu MojaApl zawierający AndroidManifest.xml i spróbować ../gradlew clean check zbudować i uruchomić testy, pojawia się ten błąd:

Could not determine the dependencies of task ':MyApp:testDebug'. 

Android Studio nie wydają się mieć żadnych problemów ze znalezieniem Moje strony zależności. Czy ktoś może wskazać mi kierunek moich testów? Wyobrażam sobie, że jest to prosta komenda terminala lub coś, co nie zostało wymienione w README wtyczki. Twoje zdrowie!

edit:

Oto moja build.gradle. Mam świadomość, że nie jest on strukturalnie identyczny z przykładowym projektem dołączonym do wtyczki, ale ta struktura dała mi identyczne błędy.

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.5.+' 
     classpath 'com.squareup.gradle:gradle-android-test-plugin:0.9.+' 
    } 
} 

apply plugin: 'android' 
apply plugin: 'android-test' 

repositories { 
    mavenCentral() 
} 

android { 
    compileSdkVersion 18 
    buildToolsVersion "18.0.1" 

    defaultConfig { 
     minSdkVersion 11 
     targetSdkVersion 18 
    } 
} 

dependencies { 
    compile 'com.android.support:support-v4:18.0.0' 

    testCompile 'junit:junit:4.11' 
    testCompile 'org.robolectric:robolectric:2.1.+' 
    testCompile 'com.squareup:fest-android:1.0.+' 
} 

Edit2: Poza faktem, że byłem wydającego niewłaściwych poleceń (jak wskazano w odpowiedzi Ravindra za), ja również nie udało się zrealizować moja wersja Gradle był zbyt nowy (jako komentarz Jake'a zwraca uwagę).

+7

RE: Nie można określić z zależności zadania ': MojaApl: testDebug'. Gradle 1.7 nie jest jeszcze obsługiwany. –

+1

... w ten sposób używasz opakowania w opakowaniu 1.6: http://www.gradle.org/docs/current/userguide/gradle_wrapper.html, a następnie uruchom opakowanie jednostkowe (NOT ./gradlew wrapper) – CjS

+0

Ten problem dotyczy [śledzone na githubie] (https://github.com/JakeWharton/gradle-android-test-plugin/issues/3), a poprawka wkrótce zniknie. Do czasu, gdy to czytasz, prawdopodobnie jest już dostępne. – gMale

Odpowiedz

2

Nie ma zadania instalacji, ale istnieją dwa zadania poprzedzone instalacją. Musisz podać pełną nazwę zadania lub przynajmniej wystarczająco dużo dla Gradle, aby dowiedzieć się, o którym mówisz (np., InstallD, ID, lub pełny rzeczą installDebug zadziała)

https://github.com/square/gradle-android-test-plugin/issues/6#issuecomment-22881923

+3

Czy mój "build.gradle" nie jest wtedy kompletny? Dzięki twojej pomocy rozumiem teraz, że './gradlew install' odnosi się do' build.gradle' w katalogu głównym wtyczki, ale skąd pochodzi "installDebug"? Kiedy próbuję 'gradle testDebug', nadal otrzymuję znane' Nie mogłem określić zależności zadania ': MyApp: testDebug'. " – artburkart

2

na liście dostępnych zadań uruchamiany z głównego katalogu projektu

gradle tasks 

do testów

gradle tests 
+1

Jeśli spróbuję 'gradle tasks' lub' gradle test', otrzymam następujące polecenie: 'Nie można określić zależności zadania ': MyApp: testDebug'." Jeśli spróbuję 'gradle tests', to jest to co otrzymałem: "Nie znaleziono testów zadań" w projekcie ": MyApp". Niektórzy kandydaci to: "zadania", "test". – artburkart

+0

próbował użyć twojego build.gradle, działa poprawnie na Gradle 1.6. – robotoaster

0

z kodu plugin, wydaje się jak należy uruchomić komendę ./gradlew test na testy do wykonania

+0

Tak, widziałem również wzmiankę o tym w README wtyczki. Ale ** './Gradlew test' ** z katalogu głównego lub **' ../ gradlew test' ** z katalogu zawierającego 'AndroidManifest.xml' skutkuje: ' Nie można określić zależności zadania " : MyApp: testDebug'. – artburkart

Powiązane problemy