Ho modificato il mio progetto per diventare multipiattaforma.Gradle: come eseguire i test da una dipendenza del modulo?
Stato precedente: Solo un modulo (progetto) con un build.gradle. Tutti i test erano nella cartella di test e quando eseguo lo gradlew testDebug
tutti i miei 500 test erano in esecuzione.
Nuovo stato: Ho un progetto principale Gradle che non fa nulla, ma che tiene 3 moduli
- nucleo
- androidversion
- rasberryPiVersion
Ognuno di questi i moduli hanno il proprio file gradle, ma solo il modulo android e rasberryPi può essere costruito. Nelle loro dipendenze (nel rispettivo file build.gradle), vengono compilati rispetto al modulo "core". Così:
dependencies {
compile project(':clapcore')
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android:android:4.1.1.4'
}
Tutti i miei 500 test sono ora nel nucleo. Quindi, quando eseguo lo gradlew clean assembleDebug testDebug
sul modulo Android, non viene rilevato alcun test e la cartella del risultato del test è vuota.
ho cercato di eseguire il comando testDebug
sul modulo di base direttamente, ma dal momento che non costruisce da solo, ricevo l'errore:
FAILURE: Build failed with an exception.
* What went wrong:
Task 'testDebug' not found in project ':core'.
Quindi la mia domanda è: esiste un modo, in gradle, per dire al comando "testDebug" di eseguire tutti i test che sono nella sua dipendenza dal modulo (core)?
ho anche tentato di aggiungere un testCompile in dipendenza del modulo di Android, ma pretende molto lavoro, in questo modo:
dependencies {
compile project(':clapcore')
testCompile project(':clapcore')
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android:android:4.1.1.4'
}
Grazie!
EDIT ho trovato che posso fare il comando gradlew build
sul nucleo e sarà eseguito il test nel modulo 'core'. Ma mi piacerebbe un modo per eseguire questi test "a cascata" se è possibile.
* EDIT 2 * ho trovato che posso fare il comando gradlew buildNeeded
sul modulo 'Android' e lo farà una build per il modulo Android e il nucleo. Sfortunatamente, si costruisce solo in versione! Se qualcuno può indicarmi un modo per utilizzare questa funzione, ma nel debug, sarebbe sorprendente. Ne ho bisogno nel debug perché la versione di rilascio lancia molte più attività come il cambio della versione, il commit a git, push, ecc ... Questo è solo per una build notturna, quindi deve essere in debug.