2016-02-07 9 views
10

Come posso configurare un build.gradle in un progetto Android per eseguire tutti i miei test di unità prima di ogni debug o release build? So che posso impostare le dipendenze delle attività con dependsOn, ma come posso specificarlo per l'attività di test dell'unità? Mi piacerebbe farlo per ciascun modulo (Android e Java normale) del mio progetto, è possibile?Test di unità in esecuzione prima di ogni build in Gradle

risposta

10

Hai un compito speciale per eseguire solo test unitari? Oppure sei libero di eseguirlo come semplice test (o più in generale testDebug e testRelease)? Diciamo che si desidera eseguire testDebug o testRelease ogni volta che si chiama attività assembleDebug o assembleRelease. Quindi puoi, come hai notato, utilizzare la proprietà dell'attività dependsOn. Per esempio in questo modo:

assembleDebug.dependsOn testDebug 
assembleRelease.dependsOn testRelease 

Questa configurazione deve essere aggiunto a ogni script build.gradle (in ogni modulo del progetto), dove ne avete bisogno. Se si dispone di un certo numero di test di tasksm è possibile impostare relazioni tra le attività in questo modo:

tasks.assembleRelease.dependsOn { 
    project.tasks.findAll { task -> 
     task.name.startsWith('testRelease') 
    } 
} 

Certo, si può provare a impostare questo dipendenze nella radice script build.gradle radice, utilizzando allprojects o subprojects (si può leggere su di esso here), ma devi applicare anche il plugin android nello script di root, altrimenti le attività non saranno trovate.

+2

Ho un progetto con Android e Java moduli semplici. Per ora ho solo semplici test JUnit. Nei miei moduli Java semplici tutto sembra funzionare bene con 'jar.dependsOn test' alla fine del file gradle (se un test fallisce, la build si ferma). Nei miei moduli Android, con 'assembleDebug.dependsOn testDebug' ottengo l'errore' Impossibile trovare la proprietà 'testDebug' su BuildType_Decorated'. Dove dovrei mettere questa linea? Grazie! – manfcas

1

Passare a Esegui/Debug configurazioni e selezionare la configurazione dell'applicazione. Nella parte inferiore del pannello di destra, sotto Prima dell'avvio:, fare clic sul pulsante + e selezionare Esegui un'altra configurazione. Lì, scegli la configurazione per eseguire i tuoi test.

Prima del lancio impostare il comando del caso di test per eseguirli. enter image description here

enter image description here

altro per il pre compito Gradle riferimento here

+0

Grazie, non sapevo di questa opzione! In questo modo, tuttavia, la configurazione non è inclusa nei file 'build.gradle' e quindi non è condivisa tramite VCS. Mi piacerebbe che fosse condiviso con tutta la mia squadra. – manfcas

+0

È possibile aggiornare i passaggi nel file README.md per il resto è possibile esportare le impostazioni IDE e condividere con il proprio team (file> impostazioni di esportazione). –

+0

Ok, ma ho ancora lo stesso problema se costruisco su un server CI. – manfcas

Problemi correlati