Konfigurieren von gradle verwenden, JUnit, Mockito, Hamcrest und Espresso

Ich habe ein Android-Projekt verwenden, Mockito, Hamcrest und Espresso beim testen helfen.

Egal was ich versuche, mit den Gradle-build-file, bekomme ich eine NoSuchMethodError für org.hamcrest.Matcher.anyOf wenn ich versuche, meinen tests nach zu tun gradle androidTestCompile.

Hier ist meine aktuelle Konfiguration:

dependencies {
    compile project(':GameCore')
    androidTestCompile files(
            'libs/espresso-1.1.jar',
            'libs/testrunner-1.1.jar',
            'libs/testrunner-runtime-1.1.jar'
    )
    androidTestCompile(
            'junit:junit:4.11',
            'org.mockito:mockito-core:1.10.0',
            'com.google.guava:guava:14.0.1',
            'com.squareup.dagger:dagger:1.1.0',
            'com.google.dexmaker:dexmaker:1.0',
            'com.google.dexmaker:dexmaker-mockito:1.0',
            'org.hamcrest:hamcrest-core:1.3',
            'org.hamcrest:hamcrest-library:1.3'
            )

Habe ich versucht, das umschreiben der Mockito und JUnit Anforderungen ausschließen Hamcrest etwa so:

androidTestCompile('junit:junit:4.11') {
    exclude group: 'org.hamcrest'
}

Aber das macht keinen Unterschied.

Den GameCore Projekt ist ein reines Java-Projekt. Es hat auch Abhängigkeiten auf JUnit und Mockito, sondern so, wie Sie sind angegeben als testCompile ich glaube nicht, sollten Sie Sie stören.

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

+--- junit:junit:4.11                                                               
|    \--- org.hamcrest:hamcrest-core:1.3
+--- org.mockito:mockito-core:1.10.0
|    +--- org.hamcrest:hamcrest-core:1.1 -> 1.3
|    \--- org.objenesis:objenesis:2.1
+--- com.google.guava:guava:14.0.1
+--- com.squareup.dagger:dagger:1.1.0
|    \--- javax.inject:javax.inject:1
+--- com.google.dexmaker:dexmaker:1.0
+--- com.google.dexmaker:dexmaker-mockito:1.0
|    +--- com.google.dexmaker:dexmaker:1.0
|    \--- org.mockito:mockito-core:1.9.5 -> 1.10.0 (*)
+--- org.hamcrest:hamcrest-core:1.3
\--- org.hamcrest:hamcrest-library:1.3
     \--- org.hamcrest:hamcrest-core:1.3

Bearbeiten

Weiteren untersucht das problem, das ich sehe, dass espresso braucht Hamcrest 1.1, aber ich bin auch mit assertThat, die in Hamcrest 1.3. Hamcrest 1.3 nicht die anyOf Methode, espresso verwendet. Also ich denke, ich bin hängen geblieben 🙂

  • Kann man gradle dependencies auf das Modul und poste die Ausgabe für die entsprechende Aufgabe?
InformationsquelleAutor Pikaling | 2014-11-05
Schreibe einen Kommentar