2016-07-04 39 views
6

Ritengo che Android Studio eseguirà il test prima di generare l'apk firmato.Come posso eseguire il test prima di generare l'apk firmato?

Ma AS non ha fatto questo per me. Non è bello prima di imballare il mio apk, ho bisogno di eseguire i test da solo.

Non sono sicuro che se dipenda dal o altro modo possa aiutarmi. Non sono sicuro che il mio build.gradle abbia errori.

Alcuni relativo codice in Gradle forse in questo modo:

defaultConfig { 
    applicationId "com.xx.xx" 
    versionCode getDefaultVersionCode() 
    minSdkVersion 19 
    targetSdkVersion 19 
} 
dependencies { 
    testCompile 'org.robolectric:robolectric:3.0' 
    testCompile 'junit:junit:4.12' 
} 

non ho scritto testOption.

mio elenco è come questo (il contenuto prima di loro è il nome del pacchetto):

enter image description here

risposta

2

Non ho dimestichezza con lo sviluppo di Android, ma penso che si potrebbe ottenere il vostro intento con l'aggiunta di questo da qualche parte nella tua build.gradle:

sign.dependsOn test 

Dove segno è la firma del compito apk (stesso nome dal compiti Gradle).

5

Per eseguire tutti i test disponibili, quando si costruisce una liberatoria rendere il compito, che costruisce il rilascio (es assembleRelease) dipendono dalle compiti di prova:

android { 
    // ... 
} 
afterEvaluate { 
    assembleRelease.dependsOn testReleaseUnitTest, connectedAndroidTest 
} 

La chiusura afterEvaluate viene eseguita dopo la valutazione (quando la sono state create attività Android). In questo momento le attività di Android possono essere referenziate come variabili.

Invece di testReleaseUnitTest è possibile utilizzare solo test, che esegue test di unità per tutte le varianti.

Ricordare che per impostazione predefinita non sono disponibili test di strumentazione per la versione release della propria app (build con assembleRelease). Quindi nell'esempio sopra, connectedAndroidTest esegue solo i test di strumentazione per la versione debug.

+0

Il nome "test" è sempre "test" o è chiamato da me? ** assembleRelease.dependsOn ** ** test ** è stato eseguito ma ** genera l'apk firmato ** non si è interrotto? – user2545386

+1

Hmm, ho trovato quando scrivo in questo modo ** assembleFlavorRelease dipende da un test **, poi ha funzionato. Penso che ogni ** assembleFlavorRelease ** a seconda del test non sia una buona idea. Come dovrei farlo? – user2545386

+0

molto bello. grazie. – dit