Wie kann ich einen build.gradle
in einem Android-Projekt konfigurieren, um alle meine Komponententests vor jedem Debug- oder Release-Build auszuführen? Ich weiß, dass ich Aufgabenabhängigkeiten mit dependsOn
festlegen kann, aber wie kann ich es für die Komponententestaufgabe spezifizieren? Ich würde das gerne für jedes (Android und Plain Java) Modul meines Projektes machen, ist das möglich?Laufende Unit-Tests vor jedem Build in Gradle
Antwort
Haben Sie eine spezielle Aufgabe, um nur Komponententests auszuführen? Oder Sie können es einfach ausführen test
(oder allgemeiner und testRelease
)? Nehmen wir an, Sie möchten oder testRelease
jedes Mal ausführen, wenn Sie assembleDebug
oder assembleRelease
Aufgabe aufrufen. Dann können Sie, wie Sie bereits festgestellt haben, die Aufgabeneigenschaft dependsOn
verwenden. Zum Beispiel so:
assembleDebug.dependsOn testDebug
assembleRelease.dependsOn testRelease
Diese Konfiguration zu jedem build.gradle Skript hinzugefügt werden müssen (in jedem Modul des Projekts), wo Sie es brauchen. Wenn Sie eine Reihe von Test tasksm haben, können Sie Aufgabe Abhängigkeiten auf diese Weise festgelegt:
tasks.assembleRelease.dependsOn {
project.tasks.findAll { task ->
task.name.startsWith('testRelease')
}
}
Sicher, können Sie versuchen, diese im Stamm build.gradle Skript die Wurzel Abhängigkeiten zu setzen, durch allprojects
oder subprojects
mit (können Sie lesen Sie darüber here), aber Sie müssen auch android
Plugin im root-Skript anwenden, sonst Aufgaben nicht gefunden werden.
Gehen Sie zu Run/Debug Configurations und wählen Sie Ihre Anwendungskonfiguration. Klicken Sie unten im rechten Bereich unter Vor dem Start: auf die Schaltfläche +, und wählen Sie eine andere Konfiguration ausführen aus. Dort wählen Sie die Konfiguration zum Ausführen Ihrer Tests.
In vor dem Start legen Sie Ihren Testfall Befehl, um sie auszuführen.
sonst für Pre gradle Aufgabe beziehen here
Danke, ich wusste nicht über diese Option! Auf diese Weise ist die Konfiguration jedoch nicht in den 'build.gradle' -Dateien enthalten und wird daher nicht über VCS freigegeben. Ich möchte, dass es mit meinem ganzen Team geteilt wird. – manfcas
Sie können die Schritte in Ihrer Datei README.md aktualisieren, ansonsten können Sie Ihre IDE-Einstellungen exportieren und mit Ihrem Team teilen (Datei> Exporteinstellungen). –
Ok, aber ich habe immer noch das gleiche Problem, wenn ich auf einem CI-Server baue. – manfcas
- 1. Android Gradle laufende Aufgabe vor
- 2. Aufgabe vor Android Gradle Build ausführen?
- 3. Laufende Gradle von Maven
- 4. Laufende Gradle auf Ubuntu 13.10
- 5. Gradle + AndroidAnnotations erzeugt doppelte Klassenfehler - muss vor jedem Build ein Projekt bereinigen
- 6. Gradle Multiprojektstammebene Build-Task
- 7. Wie höre ich Gradle für Android vom Erstellen ab * All * Bibliotheksmodul Build-Typen auf jedem Build?
- 8. Gradle Build Failure
- 9. jPOS Gradle Build-Datei
- 10. Gradle Build doppelten Eintrag
- 11. Gradle Release-Build nicht
- 12. Gradle Build ohne Tests
- 13. Gradle Build läuft weiter
- 14. Gradle Build funktioniert nicht
- 15. Ausnahme auf Gradle Build
- 16. Globale `vor` und` vor' jedem` für Mokka?
- 17. Schienen rspec vor allem vs vor jedem
- 18. Probleme beim Erstellen von Gradle Build
- 19. Python-Unittests in Jenkins?
- 20. nicht Simulator starten, wenn Unittests
- 21. Machen Sie die Methode public für UNITTESTS Build-Konfiguration
- 22. Async Unittests Setup in C#
- 23. Variable vor jedem Controller setzen
- 24. „vor jedem“ Haken: workFn Fehler
- 25. Abrufen von Gradle-Abhängigkeiten in IntelliJ IDEA mit Gradle build
- 26. Infer - Gradle Build funktioniert nicht
- 27. Gradle Build lädt Abhängigkeiten nicht
- 28. Build Unsigned APK mit Gradle
- 29. Sublime Build System für Gradle
- 30. Laufen Gradle Build Sehr lang
Ich habe ein Projekt mit Android und schlicht Java-Module. Ich habe nur einfache JUnit-Tests für jetzt. In meinen einfachen Java-Modulen scheint alles mit 'jar.dependsOn test' am Ende der Gradle-Datei zu funktionieren (wenn ein Test fehlschlägt, stoppt der Build). In meinen Android-Modulen bekomme ich mit 'assembleDebug.dependsOn testDebug' den Fehler' Konnte die Eigenschaft 'testDebug' auf BuildType_Decorated nicht finden. Wo sollte ich diese Zeile setzen? Vielen Dank! – manfcas