Unit-tests mit Android Studio und Gradle?
Wie kann ich das hinzufügen von unit-tests zu meiner Android-Projekte in Android Studio (IntelliJ) leicht?
Um genauer zu sein: ich will einen Ordner erstellen mit dem Testcode (JUnit 4) und ausführen der unit-tests von dort mit dem regulären JDK installiert (nicht in einem Android-emulator).
So weit habe ich noch die Ordner " test/java/' auf meinem Modul und fügte hinzu, "test" als Quelle eingestellt und junit als test-Abhängigkeit:
sourceSets {
instrumentTest.setRoot('src/test')
}
dependencies {
instrumentTestCompile 'junit:junit:4.+'
//...
}
Wenn ich jetzt wählen Ausführen "Alle Tests" auf der test - /java-Ordner gibt es mir eine UnsupportedOperationException.
Was bin ich? Wie führen Sie Ihre unit-tests für Android-Projekte?
Bonus-Punkte für eine Empfehlung von einem plugin, das funktioniert wie 'Infinitest' in Eclipse - wo kann ich speichern Sie einfach die Klasse und Ihre unit-Tests automatisch ausgeführt. 🙂
PS: ich will nicht zu verwenden https://github.com/JakeWharton/gradle-android-test-plugin da das plugin scheint bereits veraltet.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, die Antwort sollte werden, schon jetzt in Android-Studio 1.1 (und derzeitigen gradle-plugin).
Sie führten die unit-test-Unterstützung.
Es ist noch experimentell, aber weniger als unsere bisherigen Anstrengungen hier 🙂
Sehen hier.
Ich habe in den letzten Wochen (auch) auf, dass.
Eigentlich auf, dass auf Steroiden, da ich auch musste Robolectric in den Topf.
Kurze Antwort: wenn ich zu verwirren, dass der Fehler durch etwas anderes, ich denke, Sie versuchen zum ausführen von unit-tests mit dem Android-testrunner.
Lange Antwort:
Ich landete mit dem veralteten plugin (nach dem Versuch es, und dann versuchen, tests in androidTest Ordner), weil es löste einige Probleme auf Jenkins für mich.
Der Nachteil ist, dass es nicht erkennt die Ordner selbst, die als java-oder android-code, also code-Vervollständigung funktioniert alles, außer den Inhalt des Ordners (zum Beispiel sieht es richtig das base-Projekt und alle Abhängigkeiten).
Was ich zu tun hatte es im Android Studio erstellen Sie eine JUnit (nicht Android) testrunner.
Es wird nicht funktionieren, out of the box wahrscheinlich, weil die classpath-Reihenfolge ist Durcheinander (obwohl es gut funktioniert, einfach durch ausführen von tests in gradle).
Grundsätzlich ist die manuelle Schritte, die ich zu tun hatte sind:
Bearbeiten Sie die
-classpath
argument wie folgt:Fügen Sie den
-classpath
Sie gerade erstellt haben, um die Läufer VM-Optionen nach-ea
(Ich fand diese Lösung, oder Teile davon, in vielen Orten, eine sehr gute ist: http://kostyay.name/android-studio-robolectric-gradle-getting-work/ und es gilt auch für einfache unit-tests).
Alternative habe ich nicht probiert, aber als ich vorgeschlagen wurde, an diesem morgen (siehe letzter post):
https://groups.google.com/forum/#!Thema/adt-dev/Y8-ppkWell0
Habe ich viele verstreute wissen jetzt aufgrund der vielen Fragen, die ich entdeckte aufgrund der Vorschau SW und die Tonnen von Informationen, die ich hatte, durch zu gehen, um Sie zu lösen, aber wenn Sie mehr spezifische Frage zu dem Thema, lass es mich wissen 🙂