Ich habe ein Android-Bibliothek-Projekt. Und ich muss einige Dateien für robolectric Unit-Tests in den Ordner "Assets" kopieren.
Um es zu tun, habe ich eine Kopieraufgabe definiert:
%Vor%, aber ich kann diese Aufgabe nicht als Abhängigkeit für processDebugResources
task hinzufügen:
wegen dieses Fehlers:
Die unbekannte Eigenschaft 'processDebugResources' für das Objekt vom Typ com.android.build.gradle.LibraryExtension konnte nicht abgerufen werden.
Jetzt muss ich diese Aufgabe vor dem Komponententest manuell ausführen:
%Vor%Wie kann ich es lösen?
Das Android-Plugin fügt mehrere Aufgaben dynamisch hinzu. Ihre .dependsOn
-Zeile funktioniert nicht, weil zu dem Zeitpunkt, zu dem Gradle versucht, diese Zeile zu verarbeiten, processDebugResources
task noch verfügbar ist. Sie sollten Gradle dazu auffordern, die Abhängigkeit hinzuzufügen, sobald die Upstream-Aufgabe verfügbar ist:
Warum kopieren? Konfigurieren Sie, wo die Assets abgerufen werden sollen:
%Vor% (Ersetzen von ../testAssets
durch einen Pfad, von dem die Assets kommen sollen)
Ich habe dies erfolgreich mit androidTest
für den Instrumentierungstest verwendet. AFAIK, sollte es für test
oder jede andere Quellenmenge funktionieren.
Tags und Links android gradle unit-testing android-library android-gradle