So kopieren Sie Debug-Assets für Komponententests

8

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:

%Vor%

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?

    
g4s8 05.11.2016, 10:14
quelle

2 Antworten

3

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:

%Vor%     
RaGe 03.01.2017 01:50
quelle
3

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.

    
CommonsWare 03.01.2017 14:20
quelle