Wie spezifiziert classpath Bestellung in Gradle
Ich brauche, um die Kontrolle der Bestellung von Gläsern in der testRuntime Konfiguration.
Ich muss sicherstellen, dass robolectric-x.x.jar kommt vor android.jar oder anderes, ich bekomme die gefürchtete RuntimeException("Stub!").
Wie mache ich das?
- Sagt er in der Dokumentation, die robolectric jar hat zuvor zu kommen android.jar auf dem classpath?
- Ja, es funktioniert. Aus der Robolectric Homepage: "Fehlerbehebung für java.lang.RuntimeException: Stub! Stellen Sie sicher, dass robolectric und deren Abhängigkeiten angezeigt werden, bevor die Android-API jars in den classpath."
- Es funktioniert in Eclipse, da kann man explizit die Kontrolle der Bestellung der classpath gibt. Das Eclipse-Projekt erzeugt wurde, die von Gradle.
- Du kannst es lösen, indem Reihenfolge, in gradle dependencies, aber hüten Sie sich zwei Regeln der höheren Priorität! stackoverflow.com/a/38743046/715269
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist meine komplette bauen.gradle für die Ausführung von Robolectric tests gegen meine Android-app, die verwendet RoboGuice:
Ich hatte, um einen Ausschluss für die test-runner, oder sonst Gradle, wird eine Ausnahme ausgelöst.
MyRobolectricTestRunner.java sieht wie folgt aus:
Und hier ein Beispiel für einen test, der zeigt, Injektion:
Dies funktionieren könnte: