Gradle, Robolectric und Espresso

8

Hat jemand erfolgreich Robolectric und Espresso (zusammen) beim Bauen mit Gradle (Android Studio)?

Ich habe Robolectric im Android Studio arbeiten lassen, hauptsächlich wegen Peter Frieses Post Ссылка , aber Ich bin mir nicht sicher, wie man Espresso aufgrund von InstrumentenRunner / InstrumentTest Kollisionen integrieren kann.

Idealerweise hätte ich eine Verzeichnisstruktur wie die folgende:

%Vor%

Mein Gradle + Android-Wissen ist nicht sehr umfangreich, und ich bin mir nicht sicher, ob dies wirklich machbar ist (Zeit, Komplexität und Fragilität sind nicht zu extrem) angesichts des aktuellen Standes von Gradle + Android und wenn es so ist, wie man das macht. Auch wenn es relevant ist, habe ich 2 verschiedene Build-Varianten.

    
loeschg 02.12.2013, 22:08
quelle

2 Antworten

8

Für ein gutes Beispiel, wie Robolectric und Espresso in Harmonie zusammenarbeiten, sehen Sie sich dieses Beispiel an, das vom Robolectric-Team erstellt wurde:

Ссылка

    
plackemacher 31.03.2014, 19:54
quelle
2

Eine andere Option, die keine "Hacks, Gradle-Plugins, IDE-Plugins oder IML-Bearbeitung" enthält, ist Ссылка . Jake Wharton empfahl diesen Ansatz. Damit sind Ihre Robolectric-Tests in einem separaten Java-Modul, getrennt von Ihrem Hauptprojekt. Espresso Code lebt mit Ihrem Hauptprojekt.

Die Verwendung von JW's Doppel-Espresso ( Ссылка ) vereinfacht die Aufnahme von Espresso und den damit verbundenen Abhängigkeits-Management-Wahnsinn.

Die Lösung @plackemacher erwähnt, Deckard-Gradle, ist immer noch eine Option und wird beibehalten, obwohl es einige Hacking / Chirurgie benötigt, um mit der IDE zu arbeiten.

Aktualisieren : Sehen Sie sich die Diskussion zu Robolectric und Gradle an (bezieht sich auf Gradle): Ссылка

Update : Obwohl ich es nicht benutzt habe, sieht es so aus, als wäre es das Ticket. Ссылка .

Vorläufig entschied ich mich, einen separaten Espresso-Zweig (git) zu erstellen, der das richtige testRunner- und Test-Verzeichnis-Set hat. Keine schrecklich elegante Lösung ... erfordert Wachsamkeit, um alles auf dem neuesten Stand zu halten, aber es funktioniert jetzt!

Wird definitiv die Antwort ändern, sollte jemand eine bessere Lösung finden.

    
loeschg 25.12.2013 21:56
quelle