Konfiguration für die Verwendung von JUnit, Mockito, Hamcrest und Espresso

8

Ich habe ein Android-Projekt, bei dem Mockito, Hamcrest und Espresso beim Testen helfen.

Egal, was ich mit der Gradle-Build-Datei versuche, ich bekomme NoSuchMethodError für org.hamcrest.Matcher.anyOf , wenn ich versuche, meine Tests nach gradle androidTestCompile auszuführen.

Hier ist meine aktuelle Konfiguration:

%Vor%

Ich habe versucht, die Anforderungen von Mockito und JUnit so umzuschreiben, dass Hamcrest ausgeschlossen wird:

%Vor%

Aber das macht keinen Unterschied.

Das GameCore -Projekt ist ein reines Java-Projekt. Es hat auch Abhängigkeiten von JUnit und Mockito, aber da sie als testCompile angegeben sind, glaube ich nicht, dass sie stören sollten.

Die Ausgabe für gradle dependencies für dieses Modul für 'androidTestCompile' lautet:

%Vor%

Bearbeiten

Nachdem ich das Problem weiter untersucht habe, sehe ich, dass Espresso Hamcrest 1.1 benötigt, aber ich verwende auch assertThat, was in Hamcrest 1.3 ist. Hamcrest 1.3 hat keine anyOf-Methode, die Espresso verwendet. Also ich denke, ich stecke fest:)

    
Pikaling 05.11.2014, 20:24
quelle

2 Antworten

4

Ich habe festgestellt, dass assertThat in Hamcrest 1.1 ist, nur in hamcrest-integration anstatt in hamcrest-core . Ich habe meine Build-Datei geändert und es funktioniert jetzt alles:

%Vor%

Ich habe versucht, espresso-1.1-bundled.jar zu benutzen, aber das verursachte Dex-Fehler, weil zwei Kopien von Hamcrest 1.1 gezogen wurden, also hätte ich es aus einer Reihe von Abhängigkeiten ausschließen müssen.

    
Pikaling 06.11.2014, 00:45
quelle
1

Ich benutze derzeit all diese Bibliotheken in meinem Android Gradle-Projekt (Ich mag es wirklich zu testen und TDD :)).

Hier ist der Abhängigkeitenabschnitt meiner build.gradle-Datei:

%Vor%

Viele davon können Sie wahrscheinlich ignorieren, deshalb ist hier eine Liste mit nur den spezifischen zu testen:

%Vor%

Und die Dexmaker-Bibliotheken finden Sie hier: Ссылка

und hier:

Ссылка

    
Andre Perkins 05.11.2014 23:15
quelle