Festlegen von Testabhängigkeiten mit dem Gradle Android Build System

Ich möchte Abhängigkeiten für meine Tests angeben und nach dem Lesen der Gradle Dependency Management Grundlagen Ich könnte aber nur testCompile Aufrufe zu meiner Abhängigkeit Deklarationen wie testCompile hinzufügen:

 dependencies { compile group: 'com.squareup.dagger', name: 'dagger', version: '1.0.0' testCompile group: 'junit', name: 'junit', version: '4.11' testCompile group: 'com.squareup', name: 'fest-android', version: '1.0.1' } 

Dies scheitert jedoch bei dieser Fehlermeldung:

 > Could not find method testCompile() for arguments [{group=junit, name=junit, version=4.11}] on project ':simstatus'. 

Bin ich hier etwas fehlt

( Full gradle Build-Datei als Referenz )

  • Warum kann ich nicht gradle Aufgabe connectedDebugAndroidTest in meinem Build-Skript verwenden?
  • Verringere Gradle Sync Zeit in Android Studio
  • Wie benutzt man Gradle, um Eclipse- und Intellij-Projektdateien für Android-Projekte zu generieren
  • Android kompilieren Fehler; Java-Plugin wurde angewendet, nicht kompatibel mit Android
  • Gradle-Abhängigkeiten, die plötzlich extrem langsam sind
  • Konnte die Eigenschaft 'allJava' nicht finden
  • Gradle kann nicht mit Java 1.8 kompilieren
  • Die Aktualisierung von Google Play Services von 8.4.0 auf 9.2.1 verursacht den Gradle-Synchronisierungsfehler
  • 2 Solutions collect form web for “Festlegen von Testabhängigkeiten mit dem Gradle Android Build System”

    Das Android-Build-System verwendet nicht das Standard-Java-Plugin von Gradle.

    Die Dokumentation sagt:

    Wie bereits erwähnt, befindet sich neben dem Haupt-SourceSet das androidTest sourceSet, das standardmäßig in src / androidTest /

    Darüber hinaus kann das sourceSet so konfiguriert werden, dass es eigene Abhängigkeiten hat. Standardmäßig werden die Anwendung und ihre eigenen Abhängigkeiten zum Test-App-Klassenpfad hinzugefügt, aber dies kann mit verlängert werden

     dependencies { androidTestCompile 'com.google.guava:guava:11.0.2' } 

    Nur um diese Frage vollständig zu beantworten, ist dies, was benötigt wird, um das Problem zu lösen. Da Junit für lokale Tests und Guave gesucht werden könnte für androidTest die Android DSL sollte dies enthalten:

     android { : sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src/main/java'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] : } test { java.srcDirs = ['src/test/java'] resources.srcDirs = ['src/test/resources'] : } androidTest.setRoot('tests') } : } 

    Das bedeutet andere Aussagen, die du brauchst. Bitte beachten Sie auch, dass die Ordner andere als die oben genannten sind.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.