Android-Projekt mit Robolectric und Gradle (Android Studio)
Ich versuche, Robolectric in einem Projekt bauen mit gradle innerhalb der neuen Ide für android: Android-studio, aber ich stehe vor einem seltsamen problem, ich hab richtig importiert alle Bibliotheken und erstellt die "test" - Ordner innerhalb des "src", die Tatsache ist, dass, wenn ich führen Sie die tests aus der ide sagen immer "Klasse nicht gefunden: "com.Beispiel.myandroidproject.test" was mache ich falsch? ich muss etwas ändern in der gradle.bauen? hier ist mein Verzeichnis Struktur:
InformationsquelleAutor der Frage Flying Mongoose | 2013-05-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist unwahrscheinlich, zu arbeiten, out of the box, src/test ist nicht automatisch verwendet.
Sie müssten eine test-Aufgabe automatisch für die Kompilierung dieser Quellcode-sets, setzt die richtigen Abhängigkeiten und führen Sie es.
Wollen wir unterstützen diese in der Zukunft, aber gerade jetzt müssten Sie dies manuell tun.
InformationsquelleAutor der Antwort Xavier Ducrohet
@Aldo Borrero, schließlich scheint es, dass jemand einen Weg gefunden, um zu testen, android-Projekte unter "Android Studio" mit Robolectric und Gradle.
Bitte, werfen Sie einen Blick auf diese Antwort Robolectric mit Gradle
Update:
Die Jungs von square haben ein plugin veröffentlicht, um Robolectric Arbeit out of the box mit Gradle und Android Studio, ist dieses feature mit integriert werden, Robolectric in v2, inzwischen können Sie sich das plugin hier: Gradle Android-test-Plugin
InformationsquelleAutor der Antwort Imanol
Ich versucht, verschiedene appraoaches zu kombinieren, android studio & robolectric & espresso. Ich endete mit diesem Beispiel Projekt-setup https://github.com/nenick/android-gradle-template
Hier einige Erklärung für die unterschiedlichen Ansätze:
Anwendung Modul + espresso + robolectric
Es ist ein Beispiel https://github.com/robolectric/deckard-gradle unterstützt von robolectric Betreuer.
Diese basiert auf dem plugin https://github.com/robolectric/gradle-android-test-plugin. Aber diese haben einen Nachteil bei der Abhängigkeit der Verschmutzung berichtet, https://github.com/robolectric/gradle-android-test-plugin/issues/17 die Ergebnisse in slow-esspresso-tests Kompilierung und Ausführung.
bauen.gradle snippet vereint alle
getrennte espresso
Zeigt ein Beispiel von https://github.com/stephanenicolas/Quality-Tools-for-Android aber es ist viel veraltet und hatte auch einige Nachteile. Wird es neu kompilieren
und macht android studio Verhalten sich seltsam. Es kennzeichnet die Anwendung Modul Quellen als (root-Quelle) von der espresso-test-Modul. Das funktioniert aber nicht intuitiv.
bauen.gradle-snippet für espresso-Modul
spereate robolectric
Gibt es ein plugin https://github.com/novoda/gradle-android-test-plugindie uns ermöglichen, zu setzen, robolectric tests in eine sperate-Paket. Dieses Projekt
das setup funktioniert für mich toll ist:
bauen.gradle (app + espresso) snippet
bauen.gradle (robo) snippet
Gibt es ein paar Fehler, wenn Sie versuchen, setup dieses Projekt-setup, so starten Sie einfach mit einem Beispiel arbeiten: https://github.com/nenick/android-gradle-template
InformationsquelleAutor der Antwort nenick
Getestet habe ich alle Lösungen, die hier vorgestellt und Sie alle fehlen von etwas (version von gradle /gradle-plugin nicht unterstützt, Bibliothek-Projekt nicht unterstützt, keine integration mit Android studio, etc). Es kann nicht wahr sein in der Zukunft, aber es ist heute.
Der beste Weg, fand ich, ist die Konfiguration der unit-tests von selbst. Sie müssen hinzufügen, ein paar Zeilen config zu Ihr aufzubauen.gradle-Datei. Erklärungen sind auf den folgenden Artikel: http://tryge.com/2013/02/28/android-gradle-build/. Da bin ich nicht der Autor, ich glaube nicht, dass ich copy past den Inhalt hier direkt.
Zusätzlich zu, dass die Artikel, wenn Sie möchten, konfigurieren von Android-Studio zu sehen, das unit-test-Ordner als source-Ordner (Autovervollständigung und ähnliches), wenden Sie die folgenden wenig schmutziger hack und lassen Sie die IDE denken, dass die unit-tests befinden sich in der instrumentationTest Ordner. Natürlich wird es Chaos mit Ihrer wirklichen instrumentation tests, so dass es funktioniert nur, wenn Sie nicht alle diese.
bauen.gradle
Getestet mit Android Studio-0.2.6-und android-gradle-plugin 0.5.
InformationsquelleAutor der Antwort lukas
Gradle Android Unit-Test-Plugin ist die beste option für mich.
Entwickelt von Jake Wharton, ich denke, es wird der nächste standard (vielleicht bis google-Versionen out of the box-Unterstützung für Robolectric in Android Studio).
Können Sie importieren Sie die Bibliothek, indem Sie Ihre
build.gradle
Datei:Update: Diese Bibliothek ist veraltet, da gradle-plugin version 0.8
InformationsquelleAutor der Antwort Thomas Kaliakos
Habe ich getestet, eine Menge von Szenarien (wie http://tryge.com/2013/02/28/android-gradle-build/ und http://www.peterfriese.de/android-testing-with-robolectric/), sondern nur die Lösung von der Robolectric team für mich gearbeitet. Das setup verwendet instrumentiert und robolectric tests in einem Android-Projekt mit gradle als build-system.
Sehen http://robolectric.org/getting_started/
und die Quellen auf
https://github.com/robolectric/deckard-gradle
InformationsquelleAutor der Antwort userM1433372